繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM