可以定义一个数组长度与纯字母子串一样长。在进行筛选空白字符的时候记录该字符在原串的索引
老规矩先上运行结果:
这里使用了两种实现方式,一种是c语言风格一种是Python
两者主要区别就是Python可能会有一些库方便进行判断。
C语言风格实现
import sys
mystr=sys.stdin.readline().strip()
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开始判定
找最大周期数就从主串长度开始判断起
代码实现🪐
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)
g_convert/9f49b566129f47b8a67243c1008edf79.png)
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)