python 每日一练

python 每日一练,第1张

给定两个字符串, 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

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/568557.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-04-09
下一篇2022-04-09

发表评论

登录后才能评论

评论列表(0条)

    保存