1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; namespace SO13389560Balancing { class Program { static void Main(string[] args) { string s = "~(a b (c) d (e f (g) h) i) j (k (l (m) n) p) q"; string pattern = @" (?<= (?(Depth)(?!)) # 4. Finally, make sure there are no extra closed parentheses. ~\( (?> # (non backtracking) [^()] # 3. Allow any other character | \( (?<-Depth>)? # 2. When seeing an open paren, decreace depth if possible. # Also allow excess parentheses: '~((((((a' is OK. | (?<Depth> \) ) # 1. When seeing a closed paren, add to depth. )* ) \w # Match your letter"; s = Regex.Replace(s, pattern, "!", RegexOptions.IgnorePatternWhitespace); Console.WriteLine(s); //Console.ReadKey(); } } } |
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UZXh0Owp1c2luZyBTeXN0ZW0uVGV4dC5SZWd1bGFyRXhwcmVzc2lvbnM7CgpuYW1lc3BhY2UgU08xMzM4OTU2MEJhbGFuY2luZwp7CiAgICBjbGFzcyBQcm9ncmFtCiAgICB7CiAgICAgICAgc3RhdGljIHZvaWQgTWFpbihzdHJpbmdbXSBhcmdzKQogICAgICAgIHsKICAgICAgICAgICAgc3RyaW5nIHMgPSAifihhIGIgKGMpIGQgKGUgZiAoZykgaCkgaSkgaiAoayAobCAobSkgbikgcCkgcSI7CiAgICAgICAgICAgIHN0cmluZyBwYXR0ZXJuID0gQCIKKD88PQogICAgKD8oRGVwdGgpKD8hKSkgICAgICAgICAgIyA0LiBGaW5hbGx5LCBtYWtlIHN1cmUgdGhlcmUgYXJlIG5vIGV4dHJhIGNsb3NlZCBwYXJlbnRoZXNlcy4KICAgIH5cKAogICAgKD8+ICAgICAgICAgICAgICAgICAgICAgIyAobm9uIGJhY2t0cmFja2luZykKICAgICAgICBbXigpXSAgICAgICAgICAgICAgICMgMy4gQWxsb3cgYW55IG90aGVyIGNoYXJhY3RlcgogICAgICAgIHwKICAgICAgICBcKCAoPzwtRGVwdGg+KT8gICAgICMgMi4gV2hlbiBzZWVpbmcgYW4gb3BlbiBwYXJlbiwgZGVjcmVhY2UgZGVwdGggaWYgcG9zc2libGUuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgIEFsc28gYWxsb3cgZXhjZXNzIHBhcmVudGhlc2VzOiAnfigoKCgoKGEnIGlzIE9LLgogICAgICAgIHwKICAgICAgICAoPzxEZXB0aD4gIFwpICkgICAgICMgMS4gV2hlbiBzZWVpbmcgYSBjbG9zZWQgcGFyZW4sIGFkZCB0byBkZXB0aC4KICAgICkqCikKXHcgICAgICAgICAgICAgICAgICAgICAgICAgICMgTWF0Y2ggeW91ciBsZXR0ZXIiOwogICAgICAgIAoKICAgICAgICAgICAgcyA9IFJlZ2V4LlJlcGxhY2UocywgcGF0dGVybiwgIiEiLCBSZWdleE9wdGlvbnMuSWdub3JlUGF0dGVybldoaXRlc3BhY2UpOwoKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUocyk7CiAgICAgICAgICAgIC8vQ29uc29sZS5SZWFkS2V5KCk7CiAgICAgICAgfQogICAgfQp9Cg==
-
upload with new input
-
result: Success time: 0.07s memory: 38280 kB returned value: 0
~(! ! (!) ! (! ! (!) !) !) ! (! (! (!) !) !) !


