My Submissions

Total Accepted: 15789 Total Submissions: 29826 Difficulty: Easy Contributors: Admin

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 [] .

Hide Company Tags  Google Hide Tags  String Hide Similar Problems  (M) Flip Game II

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
    public List<String> generatePossibleNextMoves(String s) {
        List<String> res = new ArrayList<>();
        
        if (s == null || s.length() == 0) return res;
        
        for (int i = 0; i < s.length() - 1; i++) {
            if (s.charAt(i) == '+' && 
                s.charAt(i + 1) == '+') {
                    res.add(s.substring(0, i) + "--" + s.substring(i+2));
                }
        }
        return res;
    }