Я не уверен, почему вы не используете {
}
скобки. Постарайтесь выучить правильные Java условности раньше.
if (c != s.charAt(i)); // <- this semicolon is your problem
return false;
Эквивалентно:
if (c != s.charAt(i)) {
// Do nothing
}
// Do this no matter what
return false;
Кроме того, логика c на вашем for-l oop может быть ошибочной по тем же причинам. Удалите точку с запятой и, что еще лучше, практикуйтесь всегда в квадратных скобках:
if (c != s.charAt(i)) {
return false;
}
@ jhamon также указывает на то, что вы на самом деле никогда не увеличиваете i
, пока l oop:
while(!stack.empty( )) {
char c = stack.pop( );
if (c != s.charAt(i)) {
return false;
}
i++;
}