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

时间:2018-02-25 12:15:57

标签: java string duplicates

给定字符串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;**

1 个答案:

答案 0 :(得分:0)

条件

type detectionParams = {timeStamp: number, rectangle:number[]};
private detection: detectionParams[];

始终为 false ,因为if(ans.charAt(ans.length()-1)!=s.charAt(0)) 始终包含与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)两次。