gpt4 book ai didi

java - 为什么我的递归方法中的结果字符串没有更新?

转载 作者:太空宇宙 更新时间:2023-11-04 13:29:34 25 4
gpt4 key购买 nike

我有递归方法来删除连续字符,几乎就像我的教授想要的那样。但是,她不希望在removeDuplicates 方法中使用打印语句,并且我无法弄清楚为什么我的结果字符串在返回之前没有更新。这是我的代码:

public static void main(String[] args){

System.out.println(removeDuplicates("a"));
System.out.println(removeDuplicates("aa"));
System.out.println(removeDuplicates("aab"));
System.out.println(removeDuplicates("aabb"));
System.out.println(removeDuplicates("aaaba"));
System.out.println(removeDuplicates("aabbccdefghijkllaa"));
}

public static String removeDuplicates(String a){

int beg=0;
String result="";

if (a.length()-1 ==0){
result=""+a.charAt(0);
//System.out.print(a.charAt(0));
}
else if (a.charAt(beg) == a.charAt(beg+1)) {
beg++;
removeDuplicates(a.substring(beg, a.length()));
}
else {
result=""+a.charAt(0);
//System.out.print(result);
beg++;
removeDuplicates(a.substring(beg, a.length()));
}
return result;
}
}

我看到每次启动时,它都会将结果重置为空字符串。但是,不初始化它会产生错误,因为返回行无法识别字符串已更新。我怎样才能解决这个问题?(其他一切都是它应该的样子。没有静态变量,主方法中的调用是正确的,等等。我只需要修复这一部分。)

最佳答案

您的removeDuplicates需要处理递归调用的返回值

地点:

beg++;
removeDuplicates(a.substring(beg, a.length()));

您需要存储removeDuplicates调用的结果

PS:我不会写答案,因为这是作业问题,我只是指出看哪里

关于java - 为什么我的递归方法中的结果字符串没有更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32322643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com