我目前正在解决以下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,然后简化为空字符串)而不是空字符串,但我不明白为什么会这样。
答案 0 :(得分:7)
在/_api/web/siteusers
- 循环结束for
递增。因此,如果您希望循环在匹配后重新开始,则需要将i
设置为i
,以便下一个循环以-1
开头。
i==0
篡改循环计数器总是有点容易出错。所以我建议避免它。