ボブサップになりたい人のブログ

ボブサップにはなりたいけれど、エンジニアにもなりたいのでそのあたりのことを書きます

PythonのASCIIコードと文字列の変換

AtCoderABC146のB問題で「与えられた文字列をアルファベット順に任意の順番分進めろ」という問題が出た。

少し戸惑ったがPythonのchr関数、ord関数を使うとかんたんに溶けた

atcoder.jp

提出コード

gistefb6627090be1b4198b188589421dcbe

解説

与えられたアルファベットを一度ASCIIコードにエンコードし、任意の演算操作を加え、chr関数でもとの文字列にデコードしてやるという流れ。

ASCIIコードにエンコードしてから演算操作してやることで「文字列をアルファベット順にすすめる」という操作や、「zになったらaから演算し直す」といった一見複雑な操作もできる。

文字列操作に慣れていないのでチョット戸惑った。

公式ドキュメントのord関数の説明

1 文字の Unicode 文字を表す文字列に対し、その文字の Unicode コードポイントを表す整数を返します。例えば、 ord('a') は整数 97 を返し、 ord('€') (ユーロ記号) は 8364 を返します。これは chr() の逆です。