当前位置: 代码迷 >> 综合 >> LeetCode 刷题记录(14)—Java语言
  详细解决方案

LeetCode 刷题记录(14)—Java语言

热度:141   发布时间:2023-09-18 10:36:09.0

14. 最长公共前缀

题目

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 “”。

示例 1:

输入: [“flower”,”flow”,”flight”]
输出: “fl”
示例 2:

输入: [“dog”,”racecar”,”car”]
输出: “”
解释: 输入不存在公共前缀。

思路

通过寻找长度最小的字符串从其前缀开始依次增长并与其他字符串做匹配。

代码

class Solution {public String longestCommonPrefix(String[] strs) {if(strs==null||strs.length==0)return "";else if(strs.length==1)return strs[0];int min = 0;for(int i=1;i<strs.length;i++){if(strs[min].length()>strs[i].length())min = i;}int end = -1;for(int i=1;i<=strs[min].length();i++){String s = strs[min].substring(0,i);for(String str:strs)if(!str.startsWith(s)){end = i-1;i=strs.length+1;break;}else if(i==strs[min].length())end = i;}return end<=0?"":strs[min].substring(0,end);}
}
  相关解决方案