Valid Parentheses

Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.

The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" and "([)]" are not.

bool isValid(char* s) {
    int size = strlen(s);
    char buf[size];
    int i = 0;
    while(*s)
    {
        if(*s == '(' || *s == '[' || *s == '{')
        {
            buf[i] = *s;
            i++;
        }
        if(*s == ')')
        {
            if(buf[i - 1] == '(')
                i--;
            else
                return false;
        }
        if(*s == ']')
        {
            if(buf[i - 1] == '[')
                i--;
            else
                return false;
        }
        if(*s == '}')
        {
            if(buf[i - 1] == '{')
                i--;
            else
                return false;
        }
        s++;
    }
    if(i == 0)
        return true;
    else
        return false;
}
  • 使用栈
posted @ 2015-10-30 16:24  dylqt  阅读(92)  评论(0编辑  收藏  举报