Java 使用递归查找给定字符串中的最小字符
我必须编写一个方法,返回给定字符串中的最小字符(使用ASCII序列)。示例minChar(“你好”);应该返回“e” 目前我正在尝试运行minChar(“hello”,0)。我的想法是,它将从h(h<~)开始设置c=h,然后调用minChar(“hello”,1),分配c=e,等等,在最后返回“e”之前比较字母,因为这是最小值。我错过了什么Java 使用递归查找给定字符串中的最小字符,java,recursion,Java,Recursion,我必须编写一个方法,返回给定字符串中的最小字符(使用ASCII序列)。示例minChar(“你好”);应该返回“e” 目前我正在尝试运行minChar(“hello”,0)。我的想法是,它将从h(h
public static char minChar(String x, int z){
char c = '~';
while(z < x.length()){
if(x.charAt(z) < c){
c = x.charAt(z);
}
minChar(x, z+1);
}
return c;
}
publicstaticcharminchar(字符串x,intz){
字符c='~';
而(z
您没有使用从minChar()
返回的内容。使用它
public static char minChar(String x, int z){
char c = '~';
if(z < x.length()){
if(x.charAt(z) < c){
c = x.charAt(z);
}
char candidate = minChar(x, z+1); // add assignment
if (candidate < c) c = candidate; // add update
}
return c;
}
publicstaticcharminchar(字符串x,intz){
字符c='~';
如果(z
您没有使用从minChar()
返回的内容。使用它
public static char minChar(String x, int z){
char c = '~';
if(z < x.length()){
if(x.charAt(z) < c){
c = x.charAt(z);
}
char candidate = minChar(x, z+1); // add assignment
if (candidate < c) c = candidate; // add update
}
return c;
}
publicstaticcharminchar(字符串x,intz){
字符c='~';
如果(z
试试下面的代码,它适合我:
public String minChar(String x, int z){
if(z==0)
{
c=x.substring(0);
}
while(z < x.length()){
if(x.substring(z,z+1).compareTo(c)<0){
c = x.substring(z,z+1);
}
z++;
minChar(x, z);
}
return c;
}
公共字符串minChar(字符串x,int z){
如果(z==0)
{
c=x.子串(0);
}
而(z 如果(x.substring(z,z+1).compareTo(c)尝试以下代码,它对我有效:
public String minChar(String x, int z){
if(z==0)
{
c=x.substring(0);
}
while(z < x.length()){
if(x.substring(z,z+1).compareTo(c)<0){
c = x.substring(z,z+1);
}
z++;
minChar(x, z);
}
return c;
}
公共字符串minChar(字符串x,int z){
如果(z==0)
{
c=x.子串(0);
}
而(z 如果(x)子字符串(z,z+1)。比较(c)对不起,请将while
更改为if
。对不起,请将while
更改为if
。