我的输出无法实现。 但它必须是可能的。 当我检查编辑器时,它表明案件总是如此 即最后三例开关。
public String isPossible(String express) {
char a = ' ';
char b = ' ';
boolean flag = true;
Stack<Character> pile = new Stack<Character>();
char [] array = express.toCharArray();
for (int i = 0 ; i < array.length ; i++) {
a = array[i];
switch (a) {
case '(':
pile.push(a);
break;
case '{':
pile.push(a);
break;
case '[':
pile.push(a);
break;
case ')':
b = pile.pop();
if (b != '(' || b != 'X')
flag = false;
break;
case '}':
b = pile.pop();
if (b != '{' || b != 'X')
flag = false;
break;
case ']':
b = pile.pop();
if (b != ']' || b != 'X')
flag = false;
break;
}
}
if (flag == false || pile.size() % 2 != 0)
return "impossible";
else
return "possible";
}
public static void main(String args[]) {
Merge a = new Merge();
System.out.println(a.isPossible("(())"));
}
答案 0 :(得分:2)
您的逻辑错误地使用了||
(或)运算符。 b
不是'('
或者'X'
总是如此。你想要&&
(和)。
替换
if(b!='(' || b!= 'X')
与
if(b!='(' && b!= 'X')
,类似于案例陈述中的其他if
条件。