293. Flip Game

xiaoxiao2021-02-28  29

题目大意:给一串字符++–….,要依次把所有两个连续++翻转成–,求所有可能的输出.

解题思路:一次遍历,遇到两个连续的++就翻转,输出.同时保证不影响原串,用一个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; } };
转载请注明原文地址: https://www.6miu.com/read-2602676.html

最新回复(0)