6、有效的括號

使用入棧出棧操作,當入棧元素與棧頂元素相同則將棧頂元素出棧,例如遇到左括號‘(’,‘[’,’{’,則將其入棧等待配對出棧,遇到右括號若與棧頂元素匹配,則出棧。

bool isValid(char * s){
    int len = strlen(s);
    if(len == 0) return true;

    char my_stack[len];
    int top = -1;
    if(len % 2 != 0)
        return false;
    for(int i = 0;i<len;i++)
    {
        if(s[i] == '('||s[i] == '{'||s[i] == '[')
            my_stack[++top] = s[i];
        else if(top == -1)
            return false;
        else if(s[i] == my_stack[top]+1 || s[i] == my_stack[top]+2)
            my_stack[top--] = 0;
        else
            return false;
    }
    return top == -1;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章