題目描述:
給定乙個字串s, 請計算輸出含有連續兩個s作為子串的最短字串。 注意兩個s可能有重疊部分。例如,「ababa"含有兩個"aba」.
輸入描述:
輸入包括乙個字串s,字串長度length(1 ≤ length ≤ 50),s中每個字元都是小寫字母.
輸出描述:
輸出乙個字串,即含有連續兩個s作為子串的最短字串。
輸入abracadabra
輸出abracadabracadabra
思路:遍歷比較,要想補的少就要重疊部分越多。要想補乙個,就必須第一位到倒數第二位和第二位到最後一位相同,補上最後一位就行。往後遍歷補兩位補三位能不能行。。。直到可以補為止,就是最短的。
最後如果一直到補所有的,就是前面的條件都不滿足,只能s+s。
s =
raw_input()
z =''
for i in
reversed
(range(1
,len
(s))):
if s[
0:i]
== s[
len(s)
-i:]
: z = s+s[i:
]print
(z)break
else
:pass
iflen
(z)==0:
#沒補上必須重複兩次s
print
(s+s)
else
:pass
筆試記錄 京東 20200917 演算法
2個小時,30道單選,2道程式設計 給定一些道具及其 和魅力值,在總 不超過某個上限的情況下使得購買的道具的魅力值最大。多重揹包問題,逆向列舉。import sys while true ans line sys.stdin.readline strip if line break nums pri...
陣列拆分為兩個子陣列
怎麼把乙個陣列拆分成兩個非空的子陣列,而且如果兩個陣列裡的元素能夠一一對應,那麼不論順序如何,都認為是重複的 例如和是一樣的。輸入例子 1,2,3輸出例子 1 2 32 1 3 1 3 2也一樣 3 1 2輸入例子 1 2 2輸出例子 1 2 2 2 2 1 2 12 2 1 21.遞迴求解,去重 ...
python將句子中兩個子串位置互換的
想要將文中所有的類似 aa citebb citecc 替換為aa cite bb cite cc 即 與 cite 互換位置 採用非貪婪匹配,邊界條件都用 來匹配即可。import sys import os import re def changefile filename p re.compi...