LeetCode_14. 最长公共前缀
题目描述
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入:strs = ["flower","flow","flight"]
输出:"fl"
示例 2:
输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。
实现思路
使用startsWith()和substring()搞定
startsWith() 方法用于检测字符串是否以指定的前缀开始。
substring()用来截取字符串。
本题的实现思路是:
① 首先找出数组中长度最小的那个字符串
② 然后用startsWith() 方法检测字符串是否以指定的前缀开始
③ 最后对公共的前缀字符串进行截取
具体实现
class Solution {
public String longestCommonPrefix(String[] strs) {
String shortArr = strs[0];
for (String str:strs){
if (str.length() < shortArr.length()){
shortArr = str;
}
}
String result = shortArr;
for (int i = 0; i < shortArr.length(); i++) {
for (String str:strs){
if (!str.startsWith(result)){
result = result.substring(0,result.length()-1);
}
}
}
return result;
}
}