/*20. 有效的括号
给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
每个右括号都有一个对应的相同类型的左括号。
示例 1:
输入:s = "()"
输出:true
示例 2:
输入:s = "()[]{}"
输出:true
示例 3:
输入:s = "(]"
输出:false
提示:
1 <= s.length <= 104
s 仅由括号 '()[]{}' 组成*/
//在我看来 如果产生右半边括号一定在会在“局部对称范围内产生对应的左括号 如果没有就不是有效括号”
//将代码认真分析一边
/*bool isValid(char * s){
int len = strlen(s);
if(len % 2 != 0)
{
return false;
}
int b = 0,i = 0;
char a[10000];//
while(s[i])
{
switch(s[i])
{
case '(':
case '{':
case '[':
{
a[b++] = s[i++];//相当于用来储存右半边括号的容器 在这个容器里寻找接下来左边括号对应的右边括号
break;
}
case ')':
{
if(b == 0 || a[b - 1] != '(')//
{
return false;
}
b--;
i++;
break;
}
case ']':
{
if(b == 0 || a[b - 1] != '[')
{
return false;
}
b--;
i++;
break;
}
case '}':
{
if(b == 0 || a[b - 1] != '{')
{
return false;
}
b--;
i++;
break;
}
}
}
if(b == 0)
{
return true;
}
return false;
}*/
该代码以成功运行 并通过测试 如果有疑问请留言
加油铁汁们~