2015年11月5日星期四

Leetcode 293 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 twoconsecutive "++" 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 [].
Solution 1:  easy
 public class Solution {  
   public List<String> generatePossibleNextMoves(String s) {  
     char[] c=s.toCharArray();  
     int n=c.length;  
     List<String> res=new ArrayList<>();  
     for (int i=1; i<n; i++) {  
       if (c[i]=='+' && c[i-1]=='+'){  
         c[i]='-';   
         c[i-1]='-';  
         res.add(new String(c));  
         c[i]='+';  
         c[i-1]='+';  
       }  
     }  
     return res;  
   }  
 }  

没有评论:

发表评论