Я сделал кусок кода, чтобы проверить, действительна ли строка круглых скобок. Я думал, что буду считать открывающие скобки и помещать их в массив. после этого, если бы была закрывающая скобка, я бы заменил открывающую скобку в массиве чем-то еще, например буквой A. После всего этого я бы проверял, все ли символы в массиве были буквой A. Это не это действительно не кажется эффективным, и у меня еще нет кода для работы. Кажется, у меня нет синтаксических ошибок, но я, похоже, получаю исключение нулевого указателя в строке 26 моего кода:
if(!(arrays[i].equals("A")))
.
Вот: весь кусок кода для оценки:
public class Parenth {
public boolean validParentheses(String parens){
int count=0;
String[] arrays= new String[parens.length()];
if(parens.substring(0,1).equals(")"))
{
return false;
}
for(int i=0;i<parens.length();i++)
{
if(parens.substring(i,i+1).equals("("))
{
arrays[count]= parens.substring(i,i+1);
count++;
}
if(parens.substring(i,i+1).equals(")"))
{
arrays[count-1]= "A";
}
}
for(int i=0;i<arrays.length;i++)
{
if(!(arrays[i].equals("A")))
{
return false;
}
}
return true;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Parenth a = new Parenth();
a.validParentheses("()()()()()");
}
}