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

class Solution(object):
    def generatePossibleNextMoves(self, s):
        """
        :type s: str
        :rtype: List[str]
        """
        return [(s[:i] + "--" + s[i+2:]) for i in xrange(len(s)) if s[i:i+2] == "++"]

如题意,玩游戏,一串string只有+或者-,当有两个连续的+加号的时候,可以用--两个减号代替掉。要求输出所有可能性。


很简单直接破题


result = []
for i in xrange(len(s)):
    if s[i:i+2] == "++":
        result.append(s[:i] + "--" + s[i+2:])
return result

给出一个空的list。循环遍历string可能存在的所有"++"的情况,一旦发现就仅替换成"--",然后加入到list中,过程中并不破坏string的原始结构。最终返回。


答案可以直接了当的如最上代码块中,用Python的list comprehension来一行解决。






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值