AtCoder Beginner Contest Edit

【pythonでABC202を解説】B - 180°

問題概要

問題ページ

問題文

01689 からなる文字列 \(S\) が与えられます。

\(S\) を \(180\) 度回転したものを出力してください。すなわち、\(S\) に次の操作を施してできる文字列を出力してください。

  • \(S\) を反転する。
  • 00 に、11 に、69 に、88 に、96 に変換する。

制約

  • \(1 \leq |S| \leq 10^5\)
  • \(S\) は 01689 からなる。

問題の考察

ACコード

import sys


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    s = str(input().rstrip('\n'))
    ans = []
    for i in range(len(s)):
        if s[-i-1] == "6":
            ans.append("9")
        elif s[-i-1] == "9":
            ans.append("6")
        else:
            ans.append(s[-i-1])
    print("".join(ans))


if __name__ == '__main__':
    solve()

プログラミング

-AtCoder Beginner Contest, Edit
-