【AtCoder】ABC374解説(Python)

キーエンスプログラミングコンテスト2024(AtCoder Beginner Contest 374)の解説記事です。

目次

ABC374 A – Takahashi san 2

問題

問題文の要約は以下の通りです。

問題の要約

英小文字のみからなる文字列 \(S\) がsanで終わっているならばYesを、終わっていないならばNoを出力せよ。

解説

Pythonのスライスの機能を使用する。

解説

入力を受け取ります。

# 入力
S=input()

\(S\) の最後の3文字がsanで終わっているか判定します。Pythonで文字列の最後の3文字はスライスの機能でS[-3:]と書くことができます。

# S の最後の3文字が'san'で終わっているか
if S[-3:]=='san':
  print('Yes')
else:
  print('No')

解答

# 入力
S=input()

# S の最後の3文字が'san'で終わっているか
if S[-3:]=='san':
  print('Yes')
else:
  print('No')

ifを1行で書くこともできます。

# 入力
S=input()

# S の最後の3文字が'san'で終わっているか
print('Yes' if S[-3:]=='san' else 'No')

ABC374 B – Unvarnished Report

問題

問題文の要約は以下の通りです。

問題の要約

英小文字のみからなる文字列 \(S, T\) 等しいならば 0 をそうでないならば異なっている文字のうち先頭のものが何文字目かを出力せよ。ただし、\(S, T\) の一方にのみ \(i\) 文字目が存在するときも、\(i\) 文字目は異なっているとみなす。

解説

\(S, T\) が等しいときとそうでないときで場合分けを行う。

解説

入力を受け取ります。

# 入力
S=input()
T=input()

\(S, T\) が等しいときは0を出力します。

# S,Tが等しいとき
if S==T:
  print(0)

そうでないときは、\(S, T\) のうち文字数が短い方までを前から順番に確認し、等しくない文字があればそれが何文字目かを出力します。すべて一致していれば、短い方の文字数+1を出力します。

else:
  for i in range(min(len(S),len(T))):
    # 等しくないならば i を出力(0-indexedなので+1する)
    if S[i]!=T[i]:
      print(i+1)
      exit()
  # すべて一致していれば、短い方の文字数+1を出力
  print(min(len(S),len(T))+1)

解答

# 入力
S=input()
T=input()

# S,Tが等しいとき
if S==T:
  print(0)
else:
  for i in range(min(len(S),len(T))):
    # 等しくないならば i を出力(0-indexedなので+1する)
    if S[i]!=T[i]:
      print(i+1)
      exit()
  # すべて一致していれば、短い方の文字数+1を出力
  print(min(len(S),len(T))+1)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次