最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
解题思路:
首先找到最短字符串,记录其长度。
以此长度为基础,参考第一个字符串。去匹配剩余字符串。如果不相同就break输出结果
解题过程
class Solution {
public String longestCommonPrefix(String[] strs) {
if (strs==null || strs.length == 0){
return "";
}else if(strs.length == 1){
return strs[0];
}
String minStr = strs[0];
int minlen = strs[0].length();
for (int i = 1; i < strs.length; i++) {
if (strs[i].length()<=minlen){
minlen = strs[i].length();
}
}
int cnt = 0;
boolean flag = false;
for (int j = 0; j < minlen; j++) {
char temp = minStr.charAt(j);
for (int i = 1; i < strs.length; i++) {
if (strs[i].charAt(j) == temp){
flag = true;
}else {
flag = false;
break;
}
}
if (flag){
cnt++;
}else {
break;
}
}
return minStr.substring(0,cnt);
}
}