#c_sharp
Как проверить что в тексте каждый '(' закрыт ')'?
Ответы
Ответ 1
Для одного типа скобочек public bool IsValid(string s) { var count = 0; foreach (var c in s) { if (c == '(') count++; if (c == ')') { if (count == 0) return false; count--; } } return count == 0; } Для разных типов скобочек public bool IsValid2(string s) { var stack = new Stack(); foreach (var c in s) { switch (c) { case '{': case '(': case '[': stack.Push(c); break; case '}': if (stack.Count == 0) return false; if (stack.Pop() != '{') return false; break; case ']': if (stack.Count == 0) return false; if (stack.Pop() != '[') return false; break; case ')': if (stack.Count == 0) return false; if (stack.Pop() != '(') return false; break; } } return stack.Count == 0; } Ответ 2
static void Main(string[] args) { var test = "text ( hello) no me(1)-(2)-(3)-(4-(5)-6)"; Console.WriteLine(All(test)); Console.ReadKey(); } static bool All(string h) { return h.Where(v => v == '(').Count() == h.Where(v => v == ')').Count(); }
Комментариев нет:
Отправить комментарий