2017-10-10 139 views
-1

檢查特定字母/數字是否出現在字符串中(以及多少次)的最快方法是什麼?例如:搜索字符串的最快方法?

我讓用戶寫一些東西,並得到「Test020301423」(ofc我存儲該數據字符串變量)。現在我要計算字符串中出現「0」的次數。什麼是最快/最好的方式來做到這一點?

+4

迭代字符串和計數匹配字符? – Paul

+0

Theres沒有辦法確定有多少發生沒有看整個字符串,所以最快的是看每個字符 – Tyler

+0

只看char字符到循環將線性時間。你在尋找更快的解決方案嗎?我不認爲這是可能的。 –

回答

0

我假設你想搜索字符串中的不同字符來檢查可用性和事件。如果是這樣,您可以執行以下操作:

  1. 構建一個Map<Character, Integer>您將在其中存儲字符串的每個字符作爲鍵和出現的值。爲了建立這個映射,你需要遍歷字符串的每個字符。所以需要O(n)時間來構建地圖。
  2. 現在對於每一個搜索,你可以檢查是否有任何特定的字符在地圖中,如果它存在,然後看到值(出現次數)。每次搜索將需要O(1)
相關問題