[英]Removing consecutive duplicates from a string recursively is failing selective test cases
[英]removing consecutive duplicates from the string
给定字符串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)
相同的值,因为上s.charAt(0)
语句为:
String ans=""+s.charAt(0);
因此声明
ans= ans + s.charAt(0)+removeConsecutiveDuplicates(s.substring(1));
永远不会执行。 而且即使执行了它,也会导致错误的输出,因为您将s.charAt(0)
两次添加到输出String
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.