原题描述
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
 
示例 1:
输入:strs = [“flower”,”flow”,”flight”]
输出:”fl”
示例 2:
输入:strs = [“dog”,”racecar”,”car”]
输出:””
解释:输入不存在公共前缀。
 
提示:
0 <= strs.length <= 200
0 <= strs[i].length <= 200
strs[i] 仅由小写英文字母组成
个人解法
Java
JavaScript
/** @lc app=leetcode.cn id=14 lang=javascript** [14] 最长公共前缀*/// @lc code=startvar checkChar = function (str, char, index) {return str[index] === char;}/*** @param {string[]} strs* @return {string}*/var longestCommonPrefix = function (strs) {let answer = '';strs.sort((str1, str2) => {if (str1.length > str2.length) {return 1;}return -1;})const str = strs[0];let index = 0;for (let i = 0; i < str.length; i++) {let flag = true;for (let j = 1; j < strs.length; j++) {if (!checkChar(strs[j], str[index], index)) {flag = false;break;}}if (flag) {index++;} else {break;}}return str.substr(0, index);};// @lc code=end
更优解法
Java
JavaScript
/*** @param {string[]} strs* @return {string}*/var longestCommonPrefix = function(strs) {if(strs.length == 0)return "";let ans = strs[0];for(let i =1;i<strs.length;i++) {let j=0;for(;j<ans.length && j < strs[i].length;j++) {if(ans[j] != strs[i][j])break;}ans = ans.substr(0, j);if(ans === "")return ans;}return ans;};
