Python——旋转字符串

本文介绍了一种简单的方法来判断一个字符串是否可以通过旋转变为另一个字符串。利用Python内置的功能,我们可以通过检查目标字符串是否存在于原字符串拼接自身形成的字符串中来实现这一目的。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

给定两个字符串s和goal,如果在若干次旋转操作后s能够变成goal,那么就返回True
s的旋转操作就是把s最左面的字符放到最右面

例如:
s = ‘abcde’
旋转一次就是‘bceda’
而如果goal是bceda,那么goal就是s的旋转字符串

Python中的标准库是为了提高程序员开发效率,减少学习成本,而设计的一系列方便代码编写的方法。与之对应的还有第三方库,也就是python并不自带,需要自己安装后使用的
下面通过标准库中的方法,完成旋转字符串

事实上,s旋转后的几种结果可以在s+s的字串中找到
例如bceda,就包含在abcdeabcde中

解决办法

  1. 判断s和goal的长度是否相等,如果不相等就是false
  2. 判断goal是否为s + s的字串,是返回True,不是返回false

可以使用下面这种方法来判断一个字符串是不是一个字符串的子串

字符串1 in 字符串2

在这里插入图片描述

详细代码

def rotateStr(s: str, goal: str):
    if len(s) != len(goal):
        return False
    return goal in (s + s)


print(rotateStr("abcde", "deabc"))
print(rotateStr("abcde", "acbde"))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值