python 每日一练

给定两个字符串, sgoal。如果在若干次旋转操作之后,s 能变成 goal ,那么返回 true

例如:

输入:s = "abcd", goal = "cdab"

输出:True

思路:

先判断s和i字符串长度是否相等,不相等返回False,如果长度相等,移动i次后,s等于goal,则s移动i次后对应的每个字符应该与goal对一的字符相等,我们可以枚举s和goal中的每一个值,按照对应的值进行比较,如,goal[j]对应s中的值为s[(i+j)%n],n为s的长度,把所有s和goal中对应的值进行比较,全部相等则返回True, 否则返回False

代码

         l1 = len(s)

        l2 = len(goal)

        if l1 != l2:

            return False

        for i in range(l1):

            for j in range(l1):

                if s[(i + j) % l1] != goal[j]:

                    break

            else:

                return True

        return False

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值