我遇到了查找另一個字符串中所有子字符串出現的任務,並想知道什麼是解決此問題的最佳算法。字符串中子字符串出現的性能
爲了演示目的,我使用了字符串「貓坐在墊子上」並搜索子字符串「at」的所有出現。這將最終導致3的occurence計數由於我在Java的時刻,突然出現在我的腦海裏的第一件事編程是這樣的:
public static void main(String[] args) {
int count=0;
String s = "The cat sat on the mat";
Pattern pattern = Pattern.compile("at");
Matcher matcher = pattern.matcher(s);
while(matcher.find()){
count++;
}
System.out.println("Pattern: "+pattern+" Count: "+count);
}
不知怎的,我懷疑,這是最佳的解決方案爲這個問題。所以,如果有人知道最佳(或至少相當不錯)的解決方案應該看起來...請回答!你可以用任何語言發佈你的答案,不一定是java(儘管那會很棒:))。
非常感謝!
在某種程度上取決於搜索字符串的長度與搜索字符串的長度,字母大小以及您要執行的搜索次數。 – 2010-08-27 09:49:27
但是如果你還沒有測量過性能問題,請不要擔心...... – 2010-08-27 09:49:52