###前提・実現したいこと
Python3において
「標準入力で取得した二つの文字列s1,s2のうち、連続して共通する最大の文字列を抜き出す」
というプログラムを作成したいです。
###該当のソースコード
Python
1s1 = input() #一つ目の文字列取得 2L1 = list(s1) #listで一文字ずつに分割 3s2 = input() #二つ目の文字列取得 4L2 = list(s2) #listで一文字ずつに分割 5count = [] #共通部分の抜き出し用 6combo, record = 1, 1 7coword = [] #最大の文字列出力用 8 9for s in s2: #二つ目の入力の文字を左から一文字ずつ 10 if s in s1: #一つ目の入力の文字に二つ目の入力の文字があれば 11 count.append(s) #countのリストに格納 12 if s1[s1.index(s) - 1] in count: #countのリストに格納されたsがs1の中で連続であれば 13 combo += 1 #連続コンボをインクリメント 14 if combo > record: #いままでで最もコンボが繋がったら 15 record = combo #コンボ記録更新 16 coword = count[:record] #countのリストの後ろからrecord字だけ格納 17 18 else: #コンボにならなかったら 19 combo = 1 #コンボリセット 20 21 22print("".join(count)) #比較用 23print("".join(coword)) #ここで共通の最大数文字列を出力したい
###実際の入力・出力
出力の1行目はcountのもの、2行目がcowordのものになっています。
入力①
penpineapple
nea
出力①
nea
ne
入力②
penpineapple
iapple
出力②
iapple
iap
###質問
なぜcowordの出力の字数が足りなくなってしまうのでしょうか。
どこを改善すれば、最大の共通文字列を出力できますか?
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/01/12 17:28
2017/01/15 07:56