京東演算法筆試(兩個子串)

2021-10-23 10:23:04 字數 781 閱讀 1436

題目描述:

給定乙個字串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...