Valid Parentheses

来源:互联网 发布:淘宝发安能物流好恶心 编辑:程序博客网 时间:2024/05/01 05:37

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.

用户输入一串字符,判断括号是否匹配

#include<stdio.h>#include<string.h>int isValid(char* s){        char* p1 = s; //用一个指针跑源数组        char ch[30]; //用一个新字符数组作栈保存括号和判断对应关系        int i = -1;        int flag = 0;        for(; *p1!='\0'; p1++){           if((*p1 == '(') || (*p1 == '[') || (*p1 == '{')){                        i++;                        ch[i] = *p1;           }else if(*p1 == ')'){                        if(ch[i] == '('){                                i--;                        }           }else if(*p1 == ']'){                        if(ch[i] == '['){                                i--;                        }           }else if(*p1 == '}'){                        if(ch[i] == '{'){                                i--;                        }           }        }        if(i == -1){                flag = 1;        }        return flag;}int main(void){        char s[30];        int result;        printf("input a string: ");        fgets(s,sizeof(s),stdin);        printf("old string: %s",s);        result = isValid(s);        if(result == 0){                printf("not valid!\n");        }else{                printf("valid!\n");        }}
0 0
原创粉丝点击