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 38 | using System; using System.Text.RegularExpressions; /* http://kobikobi.wordpress.com/2011/05/19/net-regular-expressions-finding-decimal-numbers-that-are-divisible-by-three/ */ public class Test { public static void Main() { string pattern = @" \b (?> # No regrets - don't backtrack on if/else decisions. [0369] # = 0 (mod 3) | [147] # = 1 (mod 3) (?: # if possible pop 2, else push 1 (?<-Sum>){2}|(?<Sum>) ) | [258] # = 2 (mod 3) (?: # if possible pop 1, else push 2 (?<-Sum>)|(?<Sum>){2} ) )+ \b (?(Sum)(?!)) # Assert nothing's left in the stack "; string text = Console.ReadLine(); MatchCollection matches = Regex.Matches(text, pattern, RegexOptions.IgnorePatternWhitespace | RegexOptions.ExplicitCapture); foreach (Match match in matches) { Console.WriteLine(match.Value); } } } |
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGV4dC5SZWd1bGFyRXhwcmVzc2lvbnM7CgovKgpodHRwOi8va29iaWtvYmkud29yZHByZXNzLmNvbS8yMDExLzA1LzE5L25ldC1yZWd1bGFyLWV4cHJlc3Npb25zLWZpbmRpbmctZGVjaW1hbC1udW1iZXJzLXRoYXQtYXJlLWRpdmlzaWJsZS1ieS10aHJlZS8KKi8KCnB1YmxpYyBjbGFzcyBUZXN0CnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKCQlzdHJpbmcgcGF0dGVybiA9IEAiClxiCig/PiAgICAgICAgICAgICAjIE5vIHJlZ3JldHMgLSBkb24ndCBiYWNrdHJhY2sgb24gaWYvZWxzZSBkZWNpc2lvbnMuCiAgICBbMDM2OV0gICAgICAjID0gMCAobW9kIDMpCiAgICB8CiAgICBbMTQ3XSAgICAgICAjID0gMSAobW9kIDMpCiAgICAoPzogICAgICAgICAjIGlmIHBvc3NpYmxlIHBvcCAyLCBlbHNlIHB1c2ggMQogICAgICAgICg/PC1TdW0+KXsyfXwoPzxTdW0+KQogICAgKQogICAgfAogICAgWzI1OF0gICAgICAgIyA9IDIgKG1vZCAzKQogICAgKD86ICAgICAgICAgIyBpZiBwb3NzaWJsZSBwb3AgMSwgZWxzZSBwdXNoIDIKICAgICAgICAoPzwtU3VtPil8KD88U3VtPil7Mn0KICAgICkKKSsKXGIKKD8oU3VtKSg/ISkpICMgQXNzZXJ0IG5vdGhpbmcncyBsZWZ0IGluIHRoZSBzdGFjawoiOwoJCXN0cmluZyB0ZXh0ID0gQ29uc29sZS5SZWFkTGluZSgpOwoJCU1hdGNoQ29sbGVjdGlvbiBtYXRjaGVzID0gUmVnZXguTWF0Y2hlcyh0ZXh0LCBwYXR0ZXJuLAogICAgICAgICAgICAgICAgCVJlZ2V4T3B0aW9ucy5JZ25vcmVQYXR0ZXJuV2hpdGVzcGFjZSB8IFJlZ2V4T3B0aW9ucy5FeHBsaWNpdENhcHR1cmUpOwoJCWZvcmVhY2ggKE1hdGNoIG1hdGNoIGluIG1hdGNoZXMpCiAgICAgICAgICAgIAl7CiAgICAgICAgICAgICAJICAgQ29uc29sZS5Xcml0ZUxpbmUobWF0Y2guVmFsdWUpOwoJCX0KCX0KfQ==
-
upload with new input
-
result: Success time: 0.05s memory: 37224 kB returned value: 0
0 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 75 74 76 75642 75641 75640 111222 212121
0 3 6 9 12 15 18 21 24 75 75642 212121
Code sample for http://kobikobi.wordpress.com/2011/05/19/net-regular-expressions-finding-decimal-numbers-that-are-divisible-by-three/


