标题:14. 最长公共前缀
难度:简单
描述:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入: strs = [“flower”,“flow”,“flight”]
输出: “fl”
示例 2:
输入: strs = [“dog”,“racecar”,“car”]
输出: “”
解释: 输入不存在公共前缀。
提示:
1 <= strs.length <= 200
0 <= strs[i].length <= 200 strs[i]
仅由小写英文字母组成
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/roman-to-integer
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题解:
class Solution {
public String longestCommonPrefix(String[] strs) {
//记录匹配值
String temp = "";
if(strs == null || strs.length == 0){
//空数据返回处理
return temp;
}
//用于记录最小长度字符串位置
int index = 0;
//用于记录最小长度字符串值
String mineStr = strs[index];
//遍历取出最小字符串
for(int x = 1;x < strs.length;x++){
if(strs[x].length()<mineStr.length()){
index = x;
}
}
//最短字符串
mineStr = strs[index];
//["stirng","srtini","see"]
// mineStr = see
// index = 2
// 第一次循环 第二次循环
// x = 0 x=1
// see s e
//stirng s e!=t(不符合返回temp=“s”)
//srtini s
//mineCharj = s
//temp = "" + ”s“ =”s“
for(int j = 0;j < mineStr.length(); j++){
// 最短字符串 第j个字母
char mineCharj = mineStr.charAt(j);
//遍历字符串数组
//这里主要纵向遍历
for(int x = 0;x < strs.length;x++){
//第x个 字符串
String strx = strs[x];
//index == x :代表是我们记录的字符串不需要对比,判断下一个字符串前缀
//strx.charAt(j) == mineCharj: 说明公共前缀匹配,进入下一个判断
if(index == x || (strx.charAt(j) == mineCharj)){
//匹配进行下一个判断
continue;
}else{
//不匹配,说明当前记录的temp是公共前缀
return temp;
}
}
//遍历字符串数组后匹配 拼接匹配的值
temp = temp + mineCharj;
}
//最后返回配置值
return temp;
}
}
执行结果: 通过
执行用时: 9 ms, 在所有 Java 提交中击败了8.68%的用户
内存消耗: 38.5 MB, 在所有 Java 提交中击败了5.53%的用户
通过测试用例: 123 / 123