在力扣上做题,遇到有效的括号,因为还没学到栈,就使用了switch case 尝试一下,结果如图,请问case是不能用字符串吗?还是什么其他的原因?
int getvalue(char s)
{
int value;
switch (s)
{
case ('('||')'): value=1;break;
case ('['||']'): value=2;break;
case ('{'||'}'): value=3;break;
}
return value;
}
bool isValid(char * s){
bool result=0;
for (int i=0 ; i<strlen(s)/2 ;i++)
{
if(getvalue(s[i])==getvalue(s[strlen(s)-1]))
{
result = true;
}
else
{
result=false;
break;
}
}
return result;
}
int getvalue(char s)
{
int value;
switch (s)
{
case '(':
case ')': value=1;break;
case '[':
case ']': value=2;break;
case '{':
case '}': value=3;break;
}
return value;
}
bool isValid(char * s) {
bool result=0;
for (int i=0 ; i<strlen(s)/2 ;i++)
{
if(getvalue(s[i])==getvalue(s[strlen(s)-1]))
{
result = true;
}
else
{
result=false;
break;
}
}
return result;
}
switch……case语句中,switch后面跟一个变量,这个变量不可以是字符数组,字符指针,字符串数组,浮点型(实型)。它可以是整型,字符型(在本质上也是整型)。