AtCoderBeginnerContest076 C 問題 300 点 「Dubious Document 2」
AtCoderBeginnerContest076 C 問題 300 点 「Dubious Document 2」
問題概要
制約
解法
辞書順最小なので,S’の頭からやっていくと良くない。後から見ていくと,当てはまった後は?をすべて”a”で埋めれば辞書順最小になる。必ずしも$ |S| \le |T| $ではないことに注意。ここでめっちゃ詰まった
お気持ち
AC コード
# coding: utf-8
S = input()
T = input()
for i in range(len(S) - len(T), -1, -1):
flag = True
for j in range(len(T)):
if S[i+j] != T[j]:
if S[i+j] != "?":
flag = False
if flag:
idx = i
break
if len(S) < len(T):
flag = False
if flag:
ans = ""
for i in range(len(S)):
if idx <= i < idx + len(T):
ans += T[i-idx]
else:
if S[i] == "?":
ans += "a"
else:
ans += S[i]
else:
ans = "UNRESTORABLE"
print(ans)