算法探索_最长公共前缀
程序员文章站
2022-04-21 10:37:20
题目描述:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例1:输入: ["flower","flow","flight"]输出: "fl"示例2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母a-z。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-common-prefix解......
题目描述:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-common-prefix
解决思路:
简单粗暴,依次判断所有字符串的同一下标是否相同,一旦不同立即return当前结果
/*
*作者:赵星海
*时间:2020/7/29 9:01
*用途:最长公共前缀
*/
public String longestCommonPrefix(String[] strs) {
//首先排除三个特殊情况 null 长度0 长度1
if (strs == null || strs.length == 0) return "";
if (strs.length == 1) return strs[0];
for(String sss :strs){
if (sss.equals(""))return "";
}
String s = "";//当前最长公共前缀
char c = '-';//当前用来对比的字符
for (int i = 0; i < strs[0].length(); i++) {
for (int j = 0; j < strs.length; j++) {
//取每一个String 的同一个下标的字符进行对比
if (strs[j].length()>i){
if (j == 0) {
c = strs[j].charAt(i);
} else {
if (strs[j].charAt(i) != c) {
return s;
}
}
}else {
return s;
}
}
s += c;
}
return s;
}
本文地址:https://blog.csdn.net/qq_39731011/article/details/107655285
上一篇: 新零售:马云最早推 李日学最早做