Проверка правильного количества скобок в тексте

139
23 августа 2019, 22:20

Как проверить что в тексте каждый '(' закрыт ')'?

Answer 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<char>();  
    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;
}
Answer 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();
        }
READ ALSO
Как работает метод HasFlag в C#, и можно ли его заменить методом equals() в java?

Как работает метод HasFlag в C#, и можно ли его заменить методом equals() в java?

Я только учусь, поэтому вопрос может и глупыйНе судите строго

149
Получение списка файлов в JSON

Получение списка файлов в JSON

На хостинге есть папка, в которой есть другие папки с аудиоНужно в json файле получить список файлов в таком виде:

127