藍橋杯 演算法訓練 字串統計Python實現

2021-10-03 10:01:37 字數 1592 閱讀 4604

資源限制

時間限制:1.0s 記憶體限制:512.0mb

問題描述

給定乙個長度為n的字串s,還有乙個數字l,統計長度大於等於l的出現次數最多的子串(不同的出現可以相交),如果有多個,輸出最長的,如果仍然有多個,輸出第一次出現最早的。

輸入格式

第一行乙個數字l。

第二行是字串s。

l大於0,且不超過s的長度。

輸出格式

一行,題目要求的字串。

輸入樣例1:

4bbaabbaaaaa

輸出樣例1:

bbaa

輸入樣例2:

2bbaabbaaaaa

輸出樣例2:

aa資料規模和約定

n<=60

s中所有字元都是小寫英文本母。

提示

列舉所有可能的子串,統計出現次數,找出符合條件的那個

分析:

重點是題目說不同的出現之間可以重疊,這就使得我們不能直接使用字串的count函式來數,因為count數不出重疊的字串。題目給了提示,我們可以先切片出來有多少種類的字串,再考慮在切片出來的字串裡面數每種字串有多少個。

while

true

:try

: n =

int(

input()

) a =

input()

temp_val =

temp_num =

s =result =

result1 =

for j in

range

(n,len

(a)+1)

:# 切片長度

for i in

range

(len

(a)- j +1)

:)# temp_val是儲存所有的可能出現的子串,含重複的

for x in temp_val:

if x not

in s:

# 給切片去重

for i in s:

result.update(

)# 把次數都數一下

for key, value in result.items():

if value ==

max(result.values())

:# 把出現最多的都挑出來,可能不止乙個

result1.update(

)for key, value in result1.items():

len(key)

)print

(list

(result1)

[temp_num.index(

max(temp_num))]

)# 對字典取list就是這個字典的鍵構成的列表,輸出最長的

except

:break

**寫的比較冗餘

程式設計小白歡迎指教

藍橋杯演算法訓練 字串統計

問題描述 給定乙個長度為n的字串s,還有乙個數字l,統計長度大於等於l的出現次數最多的子串 不同的出現可以相交 如果有多個,輸出最長的,如果仍然有多個,輸出第一次出現最早的。輸入格式 第一行乙個數字l。第二行是字串s。l大於0,且不超過s的長度。輸出格式 一行,題目要求的字串。輸入樣例1 4 bba...

藍橋杯 演算法訓練 字串統計

問題描述 給定乙個長度為n的字串s,還有乙個數字l,統計長度大於等於l的出現次數最多的子串 不同的出現可以相交 如果有多個,輸出最長的,如果仍然有多個,輸出第一次出現最早的。輸入格式 第一行乙個數字l。第二行是字串s。l大於0,且不超過s的長度。輸出格式 一行,題目要求的字串。輸入樣例1 4 bba...

藍橋杯 演算法訓練 字串統計

資源限制 時間限制 1.0s 記憶體限制 512.0mb 問題描述 給定乙個長度為n的字串s,還有乙個數字l,統計長度大於等於l的出現次數最多的子串 不同的出現可以相交 如果有多個,輸出最長的,如果仍然有多個,輸出第一次出現最早的。輸入格式 第一行乙個數字l。第二行是字串s。l大於0,且不超過s的長...