[AtCoder]ABC 076 C-Dubious Document 2

body of water at daytime AtCoder
Photo by Mabel Amber on Pexels.com

問題

https://atcoder.jp/contests/abc076/tasks/abc076_c

問題キャプチャ

方針

s, tの文字数が少ないので、作れるものは全部作り、最小のものを表示する。正規表現を用いるのが楽。sに?がひとつも無い時には、sをそのまま表示する。

解答

#input
s = str(input())
t = str(input())

#output
n = len(s)
m = len(t)

answer = "UNRESTORABLE"
#sの頭からtが入るか見ていく
#t = ab
#s = a???
#上の時abaaとaaabではaaabの方が辞書順で小さい。作れるものは全部作り、最小のものを答えにする。
#sの?部分は何でも良い。
#正規表現を用いる
import re
u = s.replace("?", ".")

if m > n:
    print(answer)
    exit()
elif s == u:
    print(s)
    exit()

word_list = []
for i in range(n-m+1):
    pre_temp = u[:i]
    temp = u[i:i+m]
    post_temp = u[i+m:]
    match_temp = re.search(temp, t)
    if match_temp:
        word_list.append(pre_temp + t + post_temp)
    else:
        continue
word_list2 = []
for item in word_list:
    temp = item.replace(".", "a")
    word_list2.append(temp)

if word_list2:
    print(min(word_list2))
else:
    print(answer)

提出結果

https://atcoder.jp/contests/abc076/submissions/26108737

関連リンク

AtCoder
AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online.

コメント

タイトルとURLをコピーしました