Это школьное задание, которое пыталось решить в течение недели, я все еще не знаю, как получить реальный ответ. Если кто-то так добр и руководит мной с помощью каких-то твердых указателей, это будет действительно оценено, обратите внимание, что я не хочу решения. Например, строки(), [()], {([])},() [] представляют собой 4 сбалансированные строки.Определить, сбалансирована ли строка, содержащая круглые скобки.
Написать Рекурсивный метод: `
public static boolean isBalanced(String in)
, которая возвращает истину, если в это сбалансированная Скобки строка и ложь, если это не так.
Вот часть кода Айв работает на:
public static boolean isBalanced(String in){
if(in.length() == 0){
return true;
}
char aux = in.charAt(0);
if(aux == '{' ||aux == '[' ||aux == '('){
if(aux == '{'){
return isBalanced(in.substring(1));
}
if(aux == '}'){
return false || isBalanced(in.substring(1));
}
if(aux == '['){
return isBalanced(in.substring(1));
}
if(aux == ']'){
return false || isBalanced(in.substring(1));
}if(aux == '('){
return isBalanced(in.substring(1));
}
if(aux == ')'){
return false || isBalanced(in.substring(1));
}
}
return isBalanced(in.substring(1));
}
}
Решение, использующее стеки, действительно естественное и легкое в использовании, но я не могу думать рекурсивно. Это похоже на попытку заручиться моей неопозиционной рукой или чем-то еще. –
Возможный дубликат http://stackoverflow.com/questions/14930073/how-to-check-if-a-string-is-balanced – vtor
@CarlosSanchez стек используется, чтобы избежать рекурсии. Используя стек, вам нужен цикл. –