/**
* 找到字符串數組中的最長公共前綴
* @param {string[]} strs - 字符串數組
* @return {string} - 最長公共前綴,如果沒有公共前綴則返回空字符串
*/
var longestCommonPrefix = function (strs) {
// 如果字符串數組為空或長度超過200,返回空字符串
if (strs.length <= 0 || strs.length > 200) {
return "";
}
// 如果只有一個字符串,返回該字符串
if (strs.length === 1) {
return strs[0];
}
// 將字符串數組按長度排序,最短的字符串在最前面
strs = strs.sort((a, b) => a.length - b.length);
// 取出最短的字符串作為參考
const first = strs.pop();
// 用於存儲公共前綴的字符數組
const ary = [];
// 遍歷參考字符串中的每個字符
for (let i = 0; i < first.length; i++) {
// 過濾出當前字符位置與參考字符串相同的字符串
const filter = strs.filter(s => s[i] === first[i]);
// 如果有任何字符串在當前字符位置不匹配,跳出循環
if (filter.length !== strs.length) {
break;
}
// 將匹配的字符添加到公共前綴字符數組中
ary.push(first[i]);
}
// 如果公共前綴字符數組不為空,將其轉換為字符串並返回,否則返回空字符串
return ary.length > 0 ? ary.join('') : "";
};
2024/07/18
LeetCode 14. Longest Common Prefix
問題:用於找到字符串數組中的最長公共前綴。如果沒有公共前綴,則返回空字符串。