讨论/求职面试/判断带括号字符串的合法性/
判断带括号字符串的合法性

判断字符串的合法性

字符串由"{","}","[","]","(",")"或" "组成,定义字符串中左括号需在右括号左侧才是合法的,且" "可以忽略。请编写算法判断字符串是否是合法的?


例子

string="[{]} "
return false
string="{[  ]()  }"
return true

20. 有效的括号

bool isValid(string str) 
{
    stack<char> st;
    for (auto& c : str)
    {
        if (c == ' ') continue;  // 与 20 题不同,处理空格
        if (c == '(' || c == '[' || c == '{')
        {
            st.push(c);
        }
        else
        {
            if (st.empty()) return false;
            if (c == ')' && st.top() != '(') return false;
            if (c == ']' && st.top() != '[') return false;
            if (c == '}' && st.top() != '{') return false;
            st.pop();
        }
    }
    return st.empty();
}

致谢

感谢您的观看,希望对您有帮助,欢迎热烈的交流!

我的leetcode

展开全部 2 讨论