消除String中的重复字符

时间:2017-12-26 18:17:15

标签: java algorithm

我目前正在解决以下hackerrank问题https://www.hackerrank.com/challenges/reduced-string/problem,在给定字符串的情况下,我必须消除相同的字符对。

我的代码如下:

static String super_reduced_string(String s){
    for (int i = 0; i < s.length()-1; i++) {
        if (s.charAt(i) == s.charAt(i+1)) {
            s = s.substring(0, i) + s.substring(i+2);
            i = 0;
        }
    }
    if (s.length() == 0) {
        return("Empty String");
    } else {
        return(s);
    }

}

它适用于大多数情况,但是对于某些测试用例,例如字符串是&#34; baab&#34;,代码输出&#34; bb&#34; (baab应简化为bb,然后简化为空字符串)而不是空字符串,但我不明白为什么会这样。

1 个答案:

答案 0 :(得分:7)

/_api/web/siteusers - 循环结束for递增。因此,如果您希望循环在匹配后重新开始,则需要将i设置为i,以便下一个循环以-1开头。

i==0

篡改循环计数器总是有点容易出错。所以我建议避免它。