0
0
テーマ、知りたいこと
https://atcoder.jp/contests/abc303/tasks/abc303_a
上の問題に関して,自分の書いた解答をより簡潔なものにしたいです.
自分ならこうする,ここが冗長だなどありましたらお聞かせください.
前提
・私はプログラミングをかじったことがある程度です.
・未経験のIT企業への就職が決まったため,アルゴリズムの勉強を兼ねてAtCoder関連の問題を解いています.
・他者から見て分かりやすい,簡潔なコードをかけるようになりたいです.
・言語はPythonを使用します.
コード
Python
1def decision_sim(S, T): 2 N = len(S) 3 count = 0 4 S_dig = [str(digS) for digS in S] 5 T_dig = [str(digT) for digT in T] 6 7 for i in range(N): 8 if S_dig[i] == "l": 9 S_dig[i] = "1" 10 if S_dig[i] == "o": 11 S_dig[i] = "0" 12 13 if T_dig[i] == "l": 14 T_dig[i] = "1" 15 if T_dig[i] == "o": 16 T_dig[i] = "0" 17 18 for i in range(N): 19 if not S_dig[i] == T_dig[i]: 20 count += 1 21 break 22 23 if count == 0: 24 print("Yes") 25 else: 26 print("No") 27 28 29 30 31 32def main(): 33 N = int(input()) 34 S = input() 35 T = input() 36 decision_sim(S, T) 37 38main()
実装のプロセス
- S, Tの文字を一文字ずつ配列に格納
- S, Tの両者に関して"l"を"1"に"o"を"0"に変換
- 違う文字を発見したらカウンターを1増やす
- カウンターが0(初期値なら)"Yes", それ以外なら"No"を表示
回答3件