gpt4 book ai didi

java - 从字符串中删除连续的重复项

转载 作者:太空宇宙 更新时间:2023-11-04 10:41:09 24 4
gpt4 key购买 nike

给定一个字符串 S,递归地从中删除连续的重复项。

public class Solution {

public static String removeConsecutiveDuplicates(String s) {
// Write your code here

if(s.length() <= 1)
{
return s;
}
String ans = "" + s.charAt(0);

if(ans.charAt(ans.length()-1)!=s.charAt(0))
{
ans= ans + s.charAt(0) + removeConsecutiveDuplicates(s.substring(1));
}
//ans = ans + s.charAt(0)+
removeConsecutiveDuplicates(s.substring(1));
return ans;
}
}

为什么这段代码是错误的?尽管我也使用了不同的方法来完成此操作,但我想知道为什么上述方法会失败。

    **String ans="";
if(s.charAt(0)==s.charAt(1))
{
ans = removeConsecutiveDuplicates(s.substring(1));
}
else
ans = ans + s.charAt(0) + removeConsecutiveDuplicates(s.substring(1));
return ans;**

最佳答案

条件

if(ans.charAt(ans.length()-1)!=s.charAt(0))

将始终为false,因为ans.charAt(ans.length()-1)始终包含与s.charAt(0)相同的值,因为之前的语句是:

String ans=""+s.charAt(0);

因此声明

ans= ans + s.charAt(0)+removeConsecutiveDuplicates(s.substring(1));

永远不会被执行。即使它被执行,也会导致错误的输出,因为您将两次添加 s.charAt(0) 到输出 String

关于java - 从字符串中删除连续的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48973307/

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