【AtCoder】ABC289解説(Python)

Sky株式会社プログラミングコンテスト2023(AtCoder Beginner Contest 289)の解説記事です。

目次

ABC289 A – flip

問題

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

問題の要約

0 と 1 の 2 種類の文字からなる文字列 s が与えられたとき、s に含まれる 0 を 1 に、1 を 0 に置き換えた文字列を出力せよ。

制約

・s の長さは 1 以上 10 以下
・s は0 と 1 の 2 種類の文字からなる

入力

s

出力

 答えを出力せよ。

解法1

1文字ずつ0 を 1 に、1 を 0 に置き換える。

解説

まず入力sを受け取ります。

s=input()

for文をsの長さまでループさせます。

for i in range(len(s)):

s0であれば1を出力します。

  if s[i]=='0':
    print(1, end='')

s1であれば0を出力します。

  else:
    print(0, end='')

解答

s=input()
for i in range(len(s)):
  if s[i]=='0':
    print(1, end='')
  else:
    print(0, end='')

文字列の長さを考えずに1文字ずつ取り出す方法もあります。

s=input()
for i in s:
  if i=='0':
    print(1, end='')
  else:
    print(0, end='')

解法2

replaceを用いる。

解説

Pythonではある文字を別の文字に置き換えるreplaceが用意されています。
まず、0xに置き換え、10に置き換え、最後にx1に置き換えると、0 を 1 に、1 を 0 に置き換えたことになります。

s.replace('0', 'x').replace('1', '0').replace('x', '1')

最初に01に置き換えてしまうと、次に10に置き換えた際にすべて0になってしまうのでちゅいいしましょう。

解答

s = input()
print(s.replace('0', 'x').replace('1', '0').replace('x', '1'))

解答を1行にまとめると次のようになります。

print(input().replace('0', 'x').replace('1', '0').replace('x', '1'))
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次