# 0293. Flip Game

https://leetcode.com/problems/flip-game

## Description

You are playing a Flip Game with your friend.

You are given a string `currentState` that contains only `'+'` 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.

Return all possible states of the string `currentState` after **one valid move**. You may return the answer in **any order**. If there is no valid move, return an empty list `[]`.

**Example 1:**

```
**Input:** currentState = "++++"
**Output:** ["--++","+--+","++--"]
```

**Example 2:**

```
**Input:** currentState = "+"
**Output:** []
```

**Constraints:**

* `1 <= currentState.length <= 500`
* `currentState[i]` is either `'+'` or `'-'`.

## ac

```java
class Solution {
    public List<String> generatePossibleNextMoves(String s) {
        List<String> res = new ArrayList<>();
        if (s.length() <= 1) return res;

        char[] chars = s.toCharArray();
        for (int i = 0; i < chars.length - 1; i++) {
            if (chars[i] == '+' && chars[i+1] == '+') {
                chars[i] = '-'; chars[i+1] = '-';
                res.add(String.valueOf(chars));
                chars[i] = '+'; chars[i+1] = '+';  
            }
        }

        return res;
    }
}
```
