题目大意:给一串字符++–….,要依次把所有两个连续++翻转成–,求所有可能的输出.
解题思路:一次遍历,遇到两个连续的++就翻转,输出.同时保证不影响原串,用一个tmp来操作.
class Solution {
public:
vector<string> generatePossibleNextMoves(string s) {
vector<string> res;
int n = s.length();
for (int i = 0; i < n-1; i++) {
if (s[i] == '+' && s[i+1] == '+') {
string tmp = s;
tmp[i] = '-';
tmp[i+1] = '-';
res.push_back(tmp);
}
}
return res;
}
};