1、题目描述
2、解题思路
其实本题的意思是:把字符串中连续的 “++” 翻转成 “–”,总共有多少种反转后的结果。
明白了题意,下面就好办了,直接遍历字符串 S,如果遍历到的当前字符和下一个字符都是 ‘+’ ,那么就把当前字符和下一个字符翻转后的结果存储起来。直到遍历到倒数第二个字符后遍历结束,最后一个字符不用遍历。
3、解题代码
import java.util.ArrayList;
import java.util.List;
class Solution {
public List<String> generatePossibleNextMoves(String s) {
List<String> list = new ArrayList<>();
if (s == null || s.length() == 0) return list;
for (int i = 0; i < s.length(); i++) {
if (i != s.length() - 1 && s.charAt(i) == '+' && s.charAt(i) == s.charAt(i + 1)) {
StringBuilder sb = new StringBuilder(s);
sb.replace(i, i + 2, "--");
list.add(sb.toString());
}
}
return list;
}
}