我在输出中得到一个错误,因为我需要在new StringBuilder(““)中的strchk函数调用中给予空格以打印输出,而它应该像new StringBuilder(“”)一样我也尝试了在线编译器,它给出了相同的错误这是输入代码
public class Main
{
public static void main(String[] args)
{
String abc="appnacolllege";
Strchk(abc, 0, new StringBuilder(" "),new boolean[26]);
}
public static void Strchk (String abc,int i,StringBuilder str,boolean stroc[] )
{
if(i==str.length())
{System.out.println(str);
return;}
char currChar=abc.charAt(i);
if(stroc[currChar-'a']==true)
//duplicate
Strchk(abc, i+1, str, stroc);
else
{
stroc[currChar-'a']=true;
Strchk(abc, i+1, str.append(currChar), stroc);
}
}
}
1条答案
按热度按时间vojdkbi01#
Strchk
函数中有一个小bug。基本条件应该是i
等于abc.length()
,而不是str.length()
。函数应该是这样的: