最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python真題案例之最長回文子串 周期串詳解

 更新時間:2022年03月07日 15:51:58   作者:酷爾。  
今天來記錄一下字符串處理中常見到的回文子串與周期串問題。使用的語言是Python優(yōu)雅的處理字符串是程序員不可或缺的技能,快來一起學(xué)習(xí)吧

一、最長回文子串

問題描述??

大家已經(jīng)熟悉了AABCC、AABBCC這種類型的字符串是回文串。

也就是說,排除掉字符串中的各種字符,字母不區(qū)分大小寫,完成最長回文子串挑選即可。 如果有幾個相同長度的字符串,需要使用最左側(cè)的子串,輸出的時候原樣輸出

樣例輸入:

“Confuciuss say:Madam,I'm Adam”

樣例輸出:

“Mandam,I'm Adam”

問題分析??

第一步應(yīng)該去除原字符串內(nèi)的特殊字符得到一個只含有字母的字符串

第二步就是進行純字母字符串中回文子串的挑選

將指定的回文字符串挑選出來還需要進行原樣輸出

所以應(yīng)記錄一下子串首尾字符在原字符串中的坐標(biāo)。

可以定義一個數(shù)組長度與純字母子串一樣長。在進行篩選空白字符的時候記錄該字符在原串的索引

代碼實現(xiàn)??

老規(guī)矩先上運行結(jié)果:

這里使用了兩種實現(xiàn)方式,一種是c語言風(fēng)格一種是Python 兩者主要區(qū)別就是Python可能會有一些庫方便進行判斷。

# C語言風(fēng)格實現(xiàn)
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("第一種實現(xiàn)方式:")
print(x,y)
print(mystr[charri[x]:charri[y]+1:])

# python風(fēng)格實現(xiàn)

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("第二種實現(xiàn):")
print(x,y)
print(mstr[snum[x]:snum[y-1]+1])

二、周期串

問題描述??

如果一個字符串可以由一個長度為k的子串重復(fù)多個周期得到,那么我們說該串是以k為周期的周期串

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

我們的任務(wù)就是輸入一個字符串然后找出該串的最小周期數(shù)

樣例輸入:

HoHoHo

樣例輸出:

2

問題分析??

先是進行字符串的讀取,然后選定一個周期,判斷字符串中下一周期子串與上一周期子串是否對應(yīng)位置相同

有一個位置不相同的就判定為不是周期串,因為找的是最小周期可以從1開始判定 找最大周期數(shù)就從主串長度開始判斷起

代碼實現(xiàn)??

老規(guī)矩先上運行結(jié)果:

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[j*i:j*i+i]!=mystr[(j+1)*i:(j+1)*i+i]:
                # print(mystr[j*i:j*i+i],"--",len(mystr[(j+1)*i:(j+1)*i+i]))
                break
        else:
            mmax=i
    if mmax!=0:
        break
    
print(mmax)

???? ? ???? ???? !

到此這篇關(guān)于Python真題案例之最長回文子串 周期串詳解的文章就介紹到這了,更多相關(guān)Python 最長回文子串內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用python編寫一個語音朗讀鬧鐘功能的示例代碼

    使用python編寫一個語音朗讀鬧鐘功能的示例代碼

    這篇文章主要介紹了使用python編寫一個語音朗讀鬧鐘,本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • python的函數(shù)形參和返回值你了解嗎

    python的函數(shù)形參和返回值你了解嗎

    這篇文章主要為大家詳細介紹了python的函數(shù)形參和返回值,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • Python爬蟲實戰(zhàn)之12306搶票開源

    Python爬蟲實戰(zhàn)之12306搶票開源

    今天小編就為大家分享一篇關(guān)于Python爬蟲實戰(zhàn)之12306搶票開源,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Python標(biāo)準(zhǔn)庫之collections包的使用教程

    Python標(biāo)準(zhǔn)庫之collections包的使用教程

    這篇文章主要給大家介紹了Python標(biāo)準(zhǔn)庫之collections包的使用教程,詳細介紹了collections中多個集合類的使用方法,相信對大家具有一定的參考價值,需要的朋友們下面隨小編一起來學(xué)習(xí)學(xué)習(xí)吧。
    2017-04-04
  • Python個人博客程序開發(fā)實例用戶驗證功能

    Python個人博客程序開發(fā)實例用戶驗證功能

    這篇文章主要介紹了怎樣用Python來實現(xiàn)一個完整的個人博客系統(tǒng),我們通過實操上手的方式可以高效的鞏固所學(xué)的基礎(chǔ)知識,感興趣的朋友一起來看看吧
    2022-12-12
  • 使用pandas的box_plot去除異常值

    使用pandas的box_plot去除異常值

    今天小編就為大家分享一篇使用pandas的box_plot去除異常值,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python實現(xiàn)的簡單FTP上傳下載文件實例

    python實現(xiàn)的簡單FTP上傳下載文件實例

    這篇文章主要介紹了python實現(xiàn)的簡單FTP上傳下載文件的方法,實例分析了Python基于FTP模塊實現(xiàn)文件傳輸?shù)募记?需要的朋友可以參考下
    2015-06-06
  • python如何保證輸入鍵入數(shù)字的方法

    python如何保證輸入鍵入數(shù)字的方法

    今天小編就為大家分享一篇python如何保證輸入鍵入數(shù)字的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • 多個geojson經(jīng)過坐標(biāo)系轉(zhuǎn)換后如何合并為一個shp數(shù)據(jù)

    多個geojson經(jīng)過坐標(biāo)系轉(zhuǎn)換后如何合并為一個shp數(shù)據(jù)

    這篇文章主要介紹了多個geojson經(jīng)過坐標(biāo)系轉(zhuǎn)換后如何合并為一個shp數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • python中屏蔽輸出示例詳解

    python中屏蔽輸出示例詳解

    python中屏蔽輸出包含屏蔽標(biāo)準(zhǔn)輸出(比如打印出來的內(nèi)容)、屏蔽標(biāo)準(zhǔn)錯誤(錯誤信息)還有屏蔽logging信息等,這篇文章主要介紹了python中屏蔽輸出,需要的朋友可以參考下
    2024-05-05

最新評論

托克托县| 崇礼县| 南城县| 阜新| 甘肃省| 张家港市| 克什克腾旗| 临夏县| 武隆县| 贡山| 上思县| 虎林市| 桃江县| 湄潭县| 岳普湖县| 天柱县| 九寨沟县| 新乐市| 新巴尔虎左旗| 辰溪县| 电白县| 石泉县| 成武县| 武夷山市| 益阳市| 绥中县| 洛川县| 富源县| 仙居县| 元江| 松滋市| 拜城县| 晋州市| 那曲县| 木兰县| 湄潭县| 故城县| 东平县| 同德县| 洞头县| 日喀则市|