描述
給你一個長度為 nn 的字符串數(shù)組 strsstrs , 編寫一個函數(shù)來查找字符串數(shù)組中的最長公共前綴救崔,返回這個公共前綴。
數(shù)據(jù)范圍:
0 <= n <= 1000
0 <= len(strs[i]) <=5000
示例1
輸入:["abca","abc","abca","abc","abcc"]
返回值:"abc"
思路:拿數(shù)組第一項作為正則參考值盏档,從第二項開始遍歷數(shù)組元素旅赢,每項如果不滿足條件谷朝,就把正則修改成退一位,重新進行正則匹配鸿竖,直到遍歷完
代碼實現(xiàn):
// 判斷空數(shù)組情況沧竟,并直接將第一位元素作為參照物
var re = strs[0] ? strs[0] : '';
// 注意,這里遍歷是從1開始缚忧,因為第一位被我們拿來當參照物了
for (var i = 1; i < strs.length; i++) {
// 注意這里的正則加了^悟泵,表示從字符開始位置開始匹配
var regex = new RegExp('^' + re);
// 比較其它字符看是否符合,若不符合讓正則條件的字符遞減
while (!regex.test(strs[i]) && re.length) {
// 這里控制了字符遞減
re = re.slice(0, re.length - 1);
// 遞減后重新聲明正則
regex = new RegExp('^' + re);
};
};
return re;
}
module.exports = {
longestCommonPrefix : longestCommonPrefix
};