ABC003-B - AtCoderトランプ を解く
ABC003-B - AtCoderトランプ
なんか問題の意味がよくわからないな…サンプル見てみるか
(サンプル確認)
なるほど
一行目の文字列と二行目の文字列が一致していれば "You can win"
一致しなければ "You will lose" を出力すればいいわけか
でもって "@" は "a", "t", "c", "o", "d", "e", "r" のいずれかの文字に置き換えられる
ここがポイントだな
それぞれ頭から一字ずつ見ていって、違ってたら×…
ただし "@" のときだけ処理を変える感じで書けばいいか
片方が "@" のとき、もう片方が "a", "t", "c", "o", "d", "e", "r", "@" なら◯
それ以外なら×にすればいいな
提出したコード
# 入力 S=input() T=input() # 文字列長(SとTは同じ長さなのでとりあえずSの長さを取得した) le=len(S) for i in range(le): s=S[i] t=T[i] if s!=t: # sが"@"のとき、tが"a","t","c","o","d","e","r","@"のいずれかならセーフ if s=='@' and t in 'atcoder@': pass # tが"@"のとき、sが"a","t","c","o","d","e","r","@"のいずれかならセーフ elif t=='@' and s in 'atcoder@': pass # それ以外の不一致はアウト else: print('You will lose') exit() # チェックに引っかからなければセーフ(You can win) print('You can win')
今回は "何も処理をしない" という意味の pass を使用して
チェックがセーフだったときの処理を書いてみた
(if句内に何も書かないとエラーになるので)
あとはチェックがアウトだったときは
exit() を使ってその場で処理を終了させてみた
(アウトが判明した時点で処理を続ける意味はないので)