C
C/C++ | LeetCode
@easy_c_plus_task3.3K подп.
223просмотров
6.8%от подписчиков
23 марта 2026 г.
statsScore: 245
Задача: 32. Longest Valid Parentheses Сложность: hard Учитывая строку, содержащую только символы «(» и «)», верните длину самой длинной допустимой (правильно сформированной) подстроки скобок. Пример: Input: s = "(()" Output: 2 👨‍💻 Алгоритм: 1⃣Используем стек для хранения индексов, начальное значение — -1. 2⃣Проходим по строке: если '(', кладем индекс в стек, если ')' — извлекаем элемент. 3⃣Если после извлечения стек пуст — кладем текущий индекс, иначе — обновляем максимум длины как i - stack.top(). 😎 Решение: class Solution { public: int longestValidParentheses(string s) { stack<int> stack; int m = 0; stack.push(-1); for (int i = 0; i < s.length(); i++) { if (s[i] == '(') { stack.push(i); } else { stack.pop(); if (stack.empty()) { stack.push(i); } else { m = max(m, (i - stack.top())); } } } return m; } }; Ставь 👍 и забирай 📚 Базу знаний
223
просмотров
1093
символов
Да
эмодзи
Нет
медиа

Другие посты @easy_c_plus_task

Все посты канала →
Задача: 32. Longest Valid Parentheses Сложность: hard Учитыв — @easy_c_plus_task | PostSniper