【Python 百炼成钢】最长回文子串、周期串

charr=“”

charri=[]

mymax=-1

x=0

y=0

flag=True

j=-1

for i in mystr:

j+=1

if ord(i)<65 or ord(i)>122:

continue

else:

charr+=i

charri.append(j)

charr=charr.lower()

print(charr,charri)

i=0

while i<len(charr):

j=i

while j<len(charr):

k=i

while k<=j:

if charr[k]!=charr[i+j-k]:

flag=False

break

k+=1

if flag:

if mymax<j-i+1:

mymax=j-i+1

x=i

y=j

flag=True

j+=1

i+=1

print(“第一种实现方式:”)

print(x,y)

print(mystr[charri[x]:charri[y]+1:])

python风格实现

import sys

mstr=sys.stdin.readline().strip()

tstr=“”

snum=[]

smax=0

x=0

y=0

j=0

for i in mstr:

if ord(i)>=65 and ord(i)<=122:

tstr+=i

snum.append(j)

j+=1

tstr=tstr.lower()

for i in range(len(tstr)):

for j in range(i,len(tstr)+1):

if tstr[i:j]==tstr[i:j][::-1] and len(tstr[i:j])>smax:

smax=len(tstr[i:j])

x=i

y=j

print(“第二种实现:”)

print(x,y)

print(mstr[snum[x]:snum[y-1]+1])

二、周期串在这里插入图片描述

=====================================================================================================================================================


问题描述🪐


如果一个字符串可以由一个长度为k的子串重复多个周期得到,那么我们说该串是以k为周期的周期串

例如:qweqweqwe(以3为周期),abababab(可以以2,4为周期)

我们的任务就是输入一个字符串然后找出该串的最小周期数

样例输入:HoHoHo

样例输出:2

问题分析🪐


先是进行字符串的读取,然后选定一个周期,判断字符串中下一周期子串与上一周期子串是否对应位置相同

有一个位置不相同的就判定为不是周期串,因为找的是最小周期可以从1开始判定

找最大周期数就从主串长度开始判断起

代码实现🪐


老规矩先上运行结果:

在这里插入图片描述

import sys

mmax=0

mystr=sys.stdin.readline().strip()

for i in range(1,len(mystr)):

if len(mystr)%i==0:

for j in range(0,len(mystr)//i-1):

if mystr[ji:ji+i]!=mystr[(j+1)*i:(j+1)*i+i]:

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)

g_convert/9f49b566129f47b8a67243c1008edf79.png)

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值