Flip Game
You are playing the following Flip Game with your friend: Given a string that contains only these two characters: +
and -
, you and your friend take turns to flip two consecutive "++"
into "--"
. The game ends when a person can no longer make a move and therefore the other person will be the winner.
Write a function to compute all possible states of the string after one valid move.
For example, given s = "++++"
, after one move, it may become one of the following states:
[ "--++", "+--+", "++--" ]
If there is no valid move, return an empty list []
.
1 class Solution { 2 public: 3 vector<string> generatePossibleNextMoves(string s) { 4 vector<string> result; 5 if (s.size() < 2) return result; 6 7 for (int i = 1; i < s.size(); i++) { 8 if (s[i] == '+' && s[i - 1] == '+') { 9 s[i] = s[i - 1] = '-'; 10 result.push_back(s); 11 s[i] = s[i - 1] = '+'; 12 } 13 } 14 return result; 15 } 16 };
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步