ホームページ >バックエンド開発 >C++ >文字が数字をスクランブル化して表す文字列が与えられた場合

文字が数字をスクランブル化して表す文字列が与えられた場合

WBOY
WBOY転載
2023-09-11 20:37:02821ブラウズ

文字が数字をスクランブル化して表す文字列が与えられた場合

今日の記事では、C での文字列操作に関連する固有の問題を詳しく掘り下げます。この質問は、「指定された文字列では、アルファベットの式が数字でスクランブルされています。」です。この質問は、C での文字列操作とデータ構造のスキルを向上させるための良い演習として役立ちます。

###問題文###

文字列が与えられた場合、そのタスクは、文字表現がスクランブルされている数字を識別することです。たとえば、入力文字列が「oentow」の場合、数字 2 (t、w、o) と数字 1 (o、n、e) がスクランブルされたアルファベット表記になります。

C 解決方法

この問題を解決するには、C のハッシュ テーブルまたは順序なしマップを使用して、文字列内の文字の頻度を保存します。次に、この頻度マップを、各数値のアルファベット表記の事前定義されたマップと比較します。入力文字列から数値表現を形成できる場合は、その数値を出力します。

Example

の中国語訳は次のとおりです:

Example

これは問題を解決するための C コードです −

リーリー ###出力### リーリー

テストケース付き説明

は次のように翻訳されます:

テストケース付き説明

文字列「oentow」について考えてみましょう。

この文字列が findJumbledDigits 関数に渡されると、最初に文字列の頻度マップが生成されます: {'o': 2, 'e': 1, 'n': 1, 't': 1, ' w ':1}。

次に、0 から 9 までの各数値について、その数値のアルファベット表現の頻度マップを生成し、このマップが文字列の頻度マップから形成できるかどうかを確認します。

数値 1 の表現「one」には周波数マッピング {'o': 1, 'n': 1, 'e': 1} があり、数値 2 の表現「two」には周波数マッピングがあります。 {'t' : 1、'w': 1、'o': 1}。

これら 2 つは文字列の頻度マップによって生成できるため、これらの数値を結果に追加します。

最後に、「文字列内のごちゃ混ぜな数字は次のとおりです: 1 2」という結果が出力されます。

###結論は###

この質問は、頻度マッピングを使用して C の複雑な文字列操作の問題を解決する方法を示します。これは、文字列とデータ構造の処理スキルを練習するのに最適な質問です。 C コーディングのスキルを向上させるために、このような質問を練習し続けてください。

以上が文字が数字をスクランブル化して表す文字列が与えられた場合の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。