2017-10-10 18 views
-1

特定の文字/数字が文字列(何回)に表示されるかを確認する最も速い方法は何ですか?例:文字列を検索する最速の方法は?

私はユーザーに何かを書き込ませ、 "Test020301423"を取得しました(そのデータを文字列変数に格納します)。今、私は文字列に "0"が何回現れるかを数えたいと思います。それを行う最速/最善の方法は何ですか?

+4

文字列を繰り返し、一致する文字を数えますか? – Paul

+0

Theresは文字列全体を見ることなく何回出現するかを知る方法がないので、最も速いのはすべての文字を見るだけです – Tyler

+0

charをcharにループさせると、線形時間に変換されます。より高速なソリューションをお探しですか?私はそれが可能だとは思わない。 –

答えて

0

可用性と出現をチェックするために、文字列内の別の文字を検索すると仮定します。その場合は、次の操作を実行できます。

  1. ビルドキーとして文字列の各文字や値などの発生を格納しますMap<Character, Integer>。このマップを構築するには、文字列のすべての文字を繰り返し処理する必要があります。地図作成にはO(n)回かかるでしょう。
  2. 検索ごとに、特定の文字がマップに含まれているかどうかを確認し、存在する場合は値(出現)を確認することができます。検索ごとにO(1)が必要です。
関連する問題