我認爲最簡單的算法,也許是最有效的,是剛剛檢查序列的話,迄今爲止比較最長的共同前綴每個字,以確定有多少它可以保持。使用第一個字符串作爲初始前綴。
編輯:下面是一些JavaScript代碼,做的工作:
function findLongestPrefix(list) {
var prefix = list[0];
var prefixLen = prefix.length;
for (var i = 1; i < list.length && prefixLen > 0; i++) {
var word = list[i];
// The next line assumes 1st char of word and prefix always match.
// Initialize matchLen to -1 to test entire word.
var matchLen = 0;
var maxMatchLen = Math.min(word.length, prefixLen);
while (++matchLen < maxMatchLen) {
if (word.charAt(matchLen) != prefix.charAt(matchLen)) {
break;
}
}
prefixLen = matchLen;
}
return prefix.substring(0, prefixLen);
}
-1:你提到的這個鏈接是最長的公共子,嚴格的困難的問題。這留下了重複的鏈接,這更適合作爲評論。 – phooji