【AtCoder】ABC279解説(Python)

トヨタシステムズプログラミングコンテスト2022(AtCoder Beginner Contest 279)の解説記事です。

目次

ABC279 A – wwwvvvvvv

問題

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

問題の要約

\(v\) と \(w\) のみからなる文字列 \(S\) が与えたとき、\(v\) を1、\(w\) を2としたときの合計はいくつか求めよ。

入力

\(S\)

出力

 答えを整数として出力せよ。

解説1

for文で1文字づつvであるかwであるか確認する。

解説

まず、答えAnsを0として初期化しておきます。
Sのそれぞれの文字sに対して、svであればAnsに1を加算、swならAnsに2を加算したときの合計が答えになります。

解答

S = input()
Ans = 0
for s in S:
    if s == 'v':
        Ans += 1
    else:
        Ans += 2
print(Ans)

解説2

countを使用する。

解説

Sの中のvの数とwの2倍を足し合わせたものが答えになります。文字の数はcountで求めることができます。

解答

S = input()
print(S.count('v')+2*S.count('w'))

ABC279 B – LOOKUP

問題

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

問題の要約

英小文字からなる文字列 \(S\) , \(T\) が与えられたとき、 \(T\) が \(S\) の連続する部分文字列かどうか判定せよ。

入力

\(S\)
\(T\)

出力

\(T\) が \(S\) の連続する部分文字列なら Yes 、そうでないなら No と出力せよ。

解説

inを使用する。

解説

Pythonでは文字列に対して、部分文字列がどうかをinで判定することができます。

解答

S=input()
T=input()
if T in S:
  print('Yes')
else:
  print('No')

if文をprint内でまとめると次のようになります。

S=input()
T=input()
print('Yes' if T in S else 'No')
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次