使用语言: C语言
代码:
// LeetCode Problem No.20 Vaild Parentheses (括号配对)
// by Gun7Sum a.k.a. john11, 2022.03.16
// 解题思路:
// 构建一个先进后出的数据结构, 然后配对
// 如果配对错误或者配对结束时队列不为空, 则返回false
// 否则返回true.
bool isValid(char *s)
{
char filo[10000];
int pos = 0, i, len;
len = strlen(s);
if(len % 2 != 0) {
return false;
}
for(i = 0; i < len; i++) {
if(s[i] == '(' || s[i] == '[' || s[i] == '{') {
filo[pos] = s[i];
pos++;
} else if(s[i] == ')' || s[i] == ']' || s[i] == '}') {
if(pos == 0) {
return false;
} else if((s[i] == ')' || filo[pos-1] != '(') ||
(s[i] == ']' || filo[pos-1] != '[') ||
(s[i] == '}' || filo[pos-1] != '{') ) {
return false;
} else {
pos--;
}
}
}
if(pos == 0) {
return true;
} else {
return false;
}
}