1. ホーム
  2. c++

[解決済み】c++でcharが母音か子音かを確認する最速の方法

2022-02-14 01:52:55

質問

バックトラックを使って、様々な規則を持つ多くのquot;単語"(実在する必要はない)を見つけるという問題があります。いくつかのルールは、母音をいくつまで続けられるかに関係しています。

スイッチや、母音の配列を使ったforループを使って、母音以外のアルファベットはすべて子音であると言うこともできますが、この関数はおそらく数千回呼び出されることになるので、できるだけ高速に処理したいのです。

ある文字が母音か子音かを調べるのに、最も速い方法は何ですか?

どのように解決するのですか?

一番早い方法は、配列の中に bool で、文字の値をインデックスとして使用します。

bool is_vowel[CHAR_MAX] = { false }; // initializes all values to false
void init() {
    is_vowel['A'] = true;
    is_vowel['a'] = true;
    // etc.
}

ここで、任意の非負の charch , is_vowel[ch] は母音なら真、それ以外なら偽となります。