题目地址:
https://leetcode.com/problems/flip-game/
给定一个只含 + + +和 − - −的字符串,允许将其中连续的两个 + + +变为两个 − - −,要求返回所有可能的结果。代码如下:
import java.util.ArrayList;
import java.util.List;
public class Solution {
public List<String> generatePossibleNextMoves(String s) {
List<String> res = new ArrayList<>();
StringBuilder sb = new StringBuilder(s);
for (int i = 0; i <= s.length() - 2; i++) {
if (s.charAt(i) == '-') {
continue;
}
if (s.charAt(i + 1) == '+') {
sb.setCharAt(i, '-');
sb.setCharAt(i + 1, '-');
res.add(sb.toString());
sb.setCharAt(i + 1, '+');
sb.setCharAt(i, '+');
}
}
return res;
}
}
时空复杂度 O ( n ) O(n) O(n)。