PythonのASCIIコードと文字列の変換
AtCoderABC146のB問題で「与えられた文字列をアルファベット順に任意の順番分進めろ」という問題が出た。
少し戸惑ったがPythonのchr関数、ord関数を使うとかんたんに溶けた
提出コード
gistefb6627090be1b4198b188589421dcbe
解説
与えられたアルファベットを一度ASCIIコードにエンコードし、任意の演算操作を加え、chr関数でもとの文字列にデコードしてやるという流れ。
ASCIIコードにエンコードしてから演算操作してやることで「文字列をアルファベット順にすすめる」という操作や、「zになったらaから演算し直す」といった一見複雑な操作もできる。
文字列操作に慣れていないのでチョット戸惑った。
公式ドキュメントのord関数の説明
1 文字の Unicode 文字を表す文字列に対し、その文字の Unicode コードポイントを表す整数を返します。例えば、 ord('a') は整数 97 を返し、 ord('€') (ユーロ記号) は 8364 を返します。これは chr() の逆です。