本文主要是介绍293. Flip Game,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目大意:给一串字符++–….,要依次把所有两个连续++翻转成–,求所有可能的输出.
解题思路:一次遍历,遇到两个连续的++就翻转,输出.同时保证不影响原串,用一个tmp来操作.
注意:这里有一个奇怪的bug,若不先求出s的长度n,而是在for循环中设终止条件为 s.length()-1,则遇到空串(长度为0)会报错
代码:
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;}
};
这篇关于293. Flip Game的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!