美文网首页
20. Valid Parentheses

20. Valid Parentheses

作者: i_Eloise | 来源:发表于2018-01-21 09:35 被阅读0次
  • third attempt:
   vector<char> single;
    if(s.size()%2!=0)
        return 0;
    for(unsigned int i = 0 ; i < s.size();)
        switch(s[i])
        {
        case '(':
            if(s[i+1]!=')')
            {
                single.push_back('(');
                i=i+1;
            }
            else
                i=i+2;
            break;
        case '{':
            if(s[i+1]!='}')
            {
                single.push_back('{');
                i=i+1;
            }
            else
                i=i+2;
            break;
        case '[':
            if(s[i+1]!=']')
            {
                single.push_back('[');
                i=i+1;
            }
            else
                i = i+2;
            break;
        case ')':
            if(!single.empty() && single.back()=='(')
            {
                single.pop_back();
                i=i+1;
                break;
            }
            else
                return 0;

        case']':
            if(!single.empty()&&single.back()=='[')
            {
                single.pop_back();
                i=i+1;
                break;
            }
            else
                return 0;
        case '}':
            if(!single.empty()&&single.back()=='{')
            {
                single.pop_back();
                i=i+1;
                break;
            }
            else
                return 0;
        }
    if(single.empty())
        return 1;
    else
        return 0;

易错点:
检查vector是否为空
i的增长是+1还是+2

相关文章

网友评论

      本文标题:20. Valid Parentheses

      本文链接:https://www.haomeiwen.com/subject/iltxaxtx.html