0Pricing
Coding Interview Prep · レッスン

文字、ord、chr のテクニック

文字を数値に変換し、元に戻します

「文字、ord、chr のテクニック」はCoddyKit上の無料Coding Interview Prepレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCoding Interview Prep学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Coding Interview Prepコースには全4レッスンが含まれています。

文字は数値である

プログラムが読み込むすべての文字は、内部では数値として保存されます。コードポイントを知っていれば、文字を使って計算できます。🔢

ord()を使う

ord()関数は、1文字を整数のコードポイントに変換します。文字を算術演算につなぐ橋渡しとなる関数です。

print(ord('A'))  # 65
print(ord('a'))  # 97

chr()を使う

chr()関数はその逆です。数値を渡すと、対応する文字を返します。この2つを使えば、きれいに往復変換できます。

print(chr(65))  # 'A'
print(chr(97))  # 'a'

文字は連続している

重要なポイントは、aからzのコードポイントが連続しており、AからZも同様だということです。そのため、単純な引き算で文字をインデックス化できます。

文字を0〜25に対応付ける

基準となる文字を引くと、扱いやすい0始まりのインデックスを得られます。これにより、文字をカウント用の配列のスロットに変換できます。

idx = ord('c') - ord('a')
print(idx)  # 2

インデックスを文字に戻す

逆方向では、基準にインデックスを加えてchr()を呼び出します。これでスロット0は'a'に、スロット25は'z'になります。

ch = chr(ord('a') + 2)
print(ch)  # 'c'

文字をシフトする(シーザー暗号)

文字を前方へシフトするには、量を加えた後に26で剰余を取ります。これはシーザー暗号の問題の中心となる考え方です。

shifted = chr((ord('y') - ord('a') + 3) % 26 + ord('a'))
print(shifted)  # 'b'

大文字と小文字の差は32

文字コードの配置により、大文字は対応する小文字よりちょうど32小さい値です。必要であれば、純粋な算術演算だけで大文字と小文字を変換できます。

print(ord('a') - ord('A'))  # 32

数字も文字である

文字'7'は数値7ではありません。ord('0')を引くと、数字の文字を実際の数値に変換できます。

d = ord('7') - ord('0')
print(d)  # 7

文字をすばやくチェックする

はい・いいえの判定には、isalpha()やisdigit()のようなメソッドを使う方が、コードポイントを手作業で比較するより簡潔です。

print('x'.isalpha())  # True
print('5'.isdigit())  # True

競技プログラミングで重要な理由

文字をインデックスに対応付けると、辞書の代わりに小さな26要素の配列を使えます。これはより高速で、文字列問題の定番テクニックです。

クイックチェック

文字の計算について、簡単な問題です。

まとめ

ordとchrを使うと文字と数値を相互に変換でき、連続したコードポイントによって、単純な計算で文字のインデックス化、シフト、判定ができることを学びました。🎉

よくある質問

「文字、ord、chr のテクニック」レッスンは無料ですか?

はい。「文字、ord、chr のテクニック」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Coding Interview Prepコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Coding Interview Prepコースには全4レッスンが含まれています。

「文字、ord、chr のテクニック」で何を学びますか?

文字を数値に変換し、元に戻します ブラウザで直接実行するハンズオンコードでCoding Interview Prepを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Coding Interview Prepを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのCoding Interview Prepは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「文字、ord、chr のテクニック」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このCoding Interview Prepレッスンでコードを書いて実行できますか?

はい。すべてのCoding Interview Prepレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 文字、ord、chr のテクニック
  2. 頻度表で文字を数える
  3. 正しい回文チェック
  4. 単語の分割、strip、再結合
← Coding Interview Prepに戻る