資源限制
時間限制: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的長...