914.翻转游戏

Description

翻转游戏:给定一个只包含两种字符的字符串:+和-,你和你的小伙伴轮流翻转”++”变成”–”。当一个人无法采取行动时游戏结束,另一个人将是赢家。
编写一个函数,计算字符串在一次有效移动后的所有可能状态。

Example

给定 s = “++++”, 在一次有效移动后,它会变成下列状态之一:

1
2
3
4
5
[
"--++",
"+--+",
"++--"
]

如果无法移动,则返回一个空列表[].

Solution

简单直接一个循环

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/**
* @param s: the given string
* @return: all the possible states of the string after one valid move
*/
const generatePossibleNextMoves = function (s) {
let len = s.length;
if (len < 2)return [];
let result = [];
len -= 1;
for (let i = 0; i < len ; i++ ){
if (s.substr(i,2) === "++"){
result.push(s.substring(0,i) + "--" + s.substring(i+2));
}
}
return result;
}