編寫一個函數來查找字符串數組中的最長公共前綴。
如果不存在公共前綴,返回空字符串""。
示例1:
輸入:["flower","flow","flight"]
輸出:"fl"
示例2:
輸入:["dog","racecar","car"]
輸出:""
解釋:輸入不存在公共前綴。
說明:
所有輸入只包含小寫字母a~z。
方法一:
class Solution {
public String longestCommonPrefix(String[] strs) {
//判斷數組strs長度是否為0,如果為0直接返回“”
if (strs == null || strs.length == 0) {
return "";
}
//取出數組strs的第一個數放入prefix中
String prefix = strs[0];
//遍歷數組strs
for (int i = 1; i < strs.length; i++) {
//while循環遍歷,遍歷條件為查找遍歷prefix在strs[i]中第一次出現的位置
while (strs[i].indexOf(prefix) != 0) {
//沒遍歷一次變量就用substring截取一次
prefix = prefix.substring(0, prefix.length() - 1);
//判斷變量prefix是否為空,為空就沒有公共前綴,直接return“”。
if (prefix.isEmpty()) {
return "";
}
}
}
return prefix;
}
}
方法二
public String longestCommonPrefix(String[] strs) {
if (strs == null || strs.length == 0) {
return "";
}
for (int i = 0; i < strs[0].length() ; i++){
char c = strs[0].charAt(i);
for (int j = 1; j < strs.length; j ++) {
if (i == strs[j].length() || strs[j].charAt(i) != c) {
return strs[0].substring(0, i);
}
}
}
return strs[0];
}
作者:LeetCode 鏈接:https://leetcode-cn.com/problems/longest-common-prefix/solution/zui-chang-gong-gong-qian-zhui-by-leetcode/
浙公網安備 33010602011771號