いむらや競プロ雑記

キーワード:競プロ、育児、石川県

ABC054 B - Template Matching

atcoder.jp

緑Diffひたすら解いて精進中。。。

この問題自体はあまりハマるところはなかったけど、Yes/Noの出力が何とかならんかなあと思い、今更、三項演算子の使い方を知る。毎回書いてもいいレベルかもしれない。 関数内にいろいろ隠ぺいしようと思ったけど、論理を投げ込む方が、呼び出し元から分かりやすい気もして、行数は変わらないけど、この辺が落としどころかなあと。

def yn(isYes):
  print("Yes") if isYes else print("No")
  return

def resolve():
  N,M=map(int,(input().split()))
  A=[""]*N
  B=[""]*M

  for i in range(N):
    A[i]=input()

  for i in range(M):
    B[i]=input()

  found=False
  for ii in range(N-M+1):
    for jj in range(N-M+1):
      isOK=True
      for i in range(M):
        for j in range(M):
          if(A[ii+i][jj+j]!=B[i][j]):
            isOK=False
      if(isOK):
        found=True

  yn(found)