leetcode 20. 有效的括號 C語言版
阿新 • • 發佈:2018-11-23
給定一個只包括 '('
,')'
,'{'
,'}'
,'['
,']'
的字串,判斷字串是否有效。
有效字串需滿足:
- 左括號必須用相同型別的右括號閉合。
- 左括號必須以正確的順序閉合。
注意空字串可被認為是有效字串。
這個可以用一個棧來解決,遇到前半個括號就進棧,遇到後半個括號,就出棧,並進行匹配。
bool isValid(char* s) { char a[1000]; int i=0,j=-1; while(s[i]!='\0') { if(s[i]=='(') a[++j]='('; else if(s[i]=='[') a[++j]='['; else if(s[i]=='{') a[++j]='{'; else if(s[i]==']') { if(j==-1||a[j]!='[') j=-2; else j--; } else if(s[i]=='}') { if(j==-1||a[j]!='{') j=-2; else j--; } else if(s[i]==')') { if(j==-1||a[j]!='(') j=-2; else j--; } if(j==-2) break; i++; } if(j!=-1) return false; else return true; }