AtCoder, ABC303-A, より簡潔なコードにするにはどうしたらよいでしょうか?

テーマ、知りたいこと

https://atcoder.jp/contests/abc303/tasks/abc303_a
上の問題に関して,自分の書いた解答をより簡潔なものにしたいです.
自分ならこうする,ここが冗長だなどありましたらお聞かせください.

前提

・私はプログラミングをかじったことがある程度です.
・未経験のIT企業への就職が決まったため,アルゴリズムの勉強を兼ねてAtCoder関連の問題を解いています.
・他者から見て分かりやすい,簡潔なコードをかけるようになりたいです.
・言語はPythonを使用します.

コード

Python

1def decision_sim(S, T):2 N = len(S)3 count = 04 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 += 121 break22 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()

実装のプロセス

  1. S, Tの文字を一文字ずつ配列に格納
  2. S, Tの両者に関して"l"を"1"に"o"を"0"に変換
  3. 違う文字を発見したらカウンターを1増やす
  4. カウンターが0(初期値なら)"Yes", それ以外なら"No"を表示

コメントを投稿

0 コメント