我正在嘗試獲取存在於java中的百萬字列表中的子字符串的計數。循環遍歷每個字符串以檢查前一個值是否包含下一個值似乎有一個主要的性能問題。用更少的文字,它可以正常工作,但是當涉及一百萬字的巨大列表時,需要很長的時間才能重新計數。有人能告訴我最快的方法嗎?從百萬字的列表中獲取子字符串的計數
1
A
回答
0
我認爲你可以在2N時間得到它。
- 循環拋出所有列表並將字符串連接成一個或將其逐行放入文件或某物中。你可以得到包含所有單詞的ONE_BIG字符串。如果字符串很大,請使用file並通過unix運行regexp。
- 循環拋出所有單詞並在您的ONE_BIG上使用正則表達式並將其計數。
這是我的簡單想法。但也許有人有更好的。我好奇地等着。
0
一個簡單的解決方案是將所有子字符串插入Set
,然後檢查集合的大小。
如果這太慢或太耗費內存,自定義數據類型(例如平衡的字符樹可能會更快)。
我猜測一棵有大約1億個子串的樹就可能存儲在32位jvm中。
對於比那更大的數據集,也許散列篩選算法可能能夠進一步爲內存解決方案。
體面的數據庫或數據存儲可用於索引和存儲子字符串。
也有external sort algorithms可以使用幾個文件,並在所有幾乎沒有任何記憶的所有子排序..
其實,如果你使用的是UNIX或Linux,這足以編寫生成所有子程序,通過sort -q
和wc
管道它,並得到一個答案可能更快,幾乎沒有編碼。但是這不會讓你通過實驗室,我想。
相關問題
- 1. 從字符串列表中獲取子字符串
- 2. 從列中獲取子字符串並執行groupBy並計數
- 3. 使用php搜索字符串數以百萬計的條件
- 4. 從字符串獲取子字符串__
- 5. 獲取字符串的計數OBJ在列表中串
- 6. 獲取字符串列表中字符串的出現次數。
- 7. 獲取字符從字符串列表索引到的字符
- 8. MySQL - 如何從字符串中獲取子字符串表
- 9. 從流中獲取字符串列表
- 10. 如何從C#中的字符串中獲取字符串的子字符串?
- 11. 如何從exceular列中的子字符串中獲取數據?
- 12. 每次從列表中獲取30個字符的字符串
- 13. Python列表中的字符串列表中的子字符串
- 14. 在超過百萬個字符串的列表中以相反順序排列的字符串對?
- 15. Java從列表中獲取整數和字符串的字符串
- 16. 如何從linux中的字符串獲取子字符串?
- 17. 如何從python中的字符串獲取子字符串2
- 18. 從javascript中的html字符串獲取子字符串
- 19. 從不斷變化的字符串中獲取子字符串
- 20. 如何從ColdFusion中的字符串獲取子字符串
- 21. 獲取python列表中的字符串之間的子串
- 22. 優化數百萬字符*到字符串轉換
- 23. 如何從powershell中的子字符串中獲取數字
- 24. 從Python中的字符串數組中提取子字符串
- 25. 從EF中的字符串獲取表
- 26. 從字符串獲取鏈接列表
- 27. 從父母的子女獲取字符串列表
- 28. AS3:從指定數組中的字符串中獲取所有子字符串
- 29. jQuery從字符串中獲取數字
- 30. 從字符串中獲取數字
你能舉一個你想要的例子嗎?還請顯示一些代碼,顯示您的性能問題。 – Behe
請提供一個'如果前一個值包含下一個值'的示例。 –
這個子字符串是在輸入處給出還是您想要查找字符串的公共部分,大概是一個集合? – Cromax