Leetcode-014-最长公共前缀

Leetcode-014-最长公共前缀

思路:遍历

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 “”。

1
2
3
4
5
6
7
8
9
10
11
12
示例 1:

输入: ["flower","flow","flight"]
输出: "fl"
示例 2:

输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
说明:

所有输入只包含小写字母 a-z 。

解法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// 横向扫描
class Solution {
public String longestCommonPrefix(String[] strs) {
if (strs == null || strs.length == 0) {
return "";
}

// 拿到字符串数组的长度
int len = strs.length;
// 拿到第一个字符串
String prefix = strs[0];

// 两两比较,找出最长公共前缀
for (int i = 1; i < len; i++) {
prefix = longestPrefix(prefix, strs[i]);
if (prefix.length() == 0) {
break;
}
}
return prefix;
}

// 两两比较,找出最长公共前缀
private String longestPrefix(String str1, String str2) {
int length = Math.min(str1.length(),str2.length());
int index = 0;
while (index < length && str1.charAt(index) == str2.charAt(index)){
index ++;
}

// 截取字符串
return str1.substring(0,index);
}
}
打赏
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
  • © 2019-2022 Zhuuu
  • PV: UV:

请我喝杯咖啡吧~

支付宝
微信