Flip Game

easy string

Problem

Given a string of '+' and '-', find every state you can reach in one move by flipping any two consecutive "++" into "--".

Inputs = "++++"
Output["--++", "+--+", "++--"]

def generate(s):
    out = []
    for i in range(len(s) - 1):
        if s[i] == '+' and s[i + 1] == '+':
            out.append(s[:i] + '--' + s[i + 2:])
    return out
function generate(s) {
  const out = [];
  for (let i = 0; i < s.length - 1; i++) {
    if (s[i] === '+' && s[i + 1] === '+')
      out.push(s.slice(0, i) + '--' + s.slice(i + 2));
  }
  return out;
}
class Solution {
    public List<String> generatePossibleNextMoves(String s) {
        List<String> out = new ArrayList<>();
        for (int i = 0; i < s.length() - 1; i++)
            if (s.charAt(i) == '+' && s.charAt(i + 1) == '+')
                out.add(s.substring(0, i) + "--" + s.substring(i + 2));
        return out;
    }
}
vector<string> generatePossibleNextMoves(string s) {
    vector<string> out;
    for (int i = 0; i < (int)s.size() - 1; i++)
        if (s[i] == '+' && s[i + 1] == '+')
            out.push_back(s.substr(0, i) + "--" + s.substr(i + 2));
    return out;
}
Time: O(n²) Space: O(n²) for the output