|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
我不明白为什么一定要有第二个条件"s‘ 一定是 s 的前缀子字符串"
我觉得第三个条件足够把解限定住了,条件二是多此一举
请各位大神帮忙看一下,有没有字符串满足条件三但是不满足条件二的,请举例说明
谢谢各位前辈
n 一定是 i 的倍数
s‘ 一定是 s 的前缀子字符串
n 除以 i 的结果必定是 s’ 在 s 中出现的次数
s = input("请输入一个由字母构成的字符串:")
n = len(s)
for i in range(1, n//2+1):
# 如果子字符串的长度为i,则n必须可以被i整除才行
if n % i == 0:
# 如果子字符串的长度为i,则i到i*2之间是一个重复的子字符串
if s.startswith(s[i:i*2]) and s.count(s[i:i*2]) == n/i:
print(True)
break
# for...else的用法,小甲鱼希望大家还没有忘记哦^o^
else:
print(False)
本帖最后由 elven08 于 2022-3-8 14:00 编辑
- def nini(n):
- print("增加条件二计算")
- for i in range(1, n//2+1):
- if n % i == 0:
- if s.startswith(s[i:i*2]) and s.count(s[i:i*2]) == n/i:
- print(s[i:i*2],True)
- else:
- print(s[i:i*2])
- def nnoi(n):
- print("不用条件二计算")
- for i in range(1, n//2+1):
- if s.startswith(s[i:i*2]) and s.count(s[i:i*2]) == n/i:
- print(s[i:i*2],True)
- else:
- print(s[i:i*2])
- s = input("请输入一个由字母构成的字符串:")
- n = len(s)
- a,b=nini(n),nnoi(n)
复制代码
|
|