问题描述
大家好,我正在编写一个“生成所有括号”程序,并且收到错误消息:- ” java.base / java.lang.StringConcatHelper.simpleConcat(StringConcatHelper.java:421) “
与此同时,我收到堆栈溢出错误
我附有此错误的代码,请查看并告诉我修改的必要内容:-
public class j{
public static void main(String[] args){
int n = 2;
int open = n;
int close = n;
String op = " ";
findAns(op,open,close);
}
private static void findAns(String op,int open,int close){
if (open == 0 && close == 0){
System.out.println(op);
}
if (open == close){
String op1 = op + "(";
findAns(op1,open - 1,close);
return;
}
if (open != 0){
String op1 = op + "(";
open = open - 1;
findAns(op1,close);
}
String op1 = op + ")";
close = close - 1;
findAns(op1,close);
return;
} }
解决方法
您需要递归的退出条件。也许是这样吗?
if (open == 0 && close == 0){
System.out.println(op);
--> return;
}