长期更新,对使用 Java 刷 LeetCode 过程中一些有趣的题的感想和启发。 解题源代码仓库
题目
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ““。
示例 1:
输入: [“flower”,”flow”,”flight”] 输出: “fl” 示例 2:
输入: [“dog”,”racecar”,”car”] 输出: “” 解释: 输入不存在公共前缀。 说明:
所有输入只包含小写字母 a-z 。
我的思路
思路如下:
- 循环次数 = 最小的那个字符串的长度。
- 如果一个
char
相同,则将其加入字符串output
。
我的代码
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.length == 0) return "";
String output = "";
char temp;
Boolean isForehead = true;
//i是要循环几次前缀
for (int i = 0;i < findMinLength(strs);i++){
temp = strs[0].charAt(i);
//j是要循环对比几个数
for (int j = 1;j < strs.length;j++){
if (temp != strs[j].charAt(i)){
isForehead = false;
}
}
if (isForehead) {
output = output + temp;
}else return output;
}
return output;
}
public int findMinLength(String[] strs){
int length = strs.length;
int minLength = strs[0].length();
for (int i = 1;i < length;i++){
if (strs[i].length() < minLength){
minLength = strs[i].length();
}
}
return minLength;
}
}
本文作者 Auther:Soptq
本文链接 Link: https://soptq.me/2018/09/23/leetCode14/
版权声明 Copyright: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处。 Content on this site is licensed under the CC BY-NC-SA 4.0 license agreement unless otherwise noted. Attribution required.
发现存在错别字或者事实错误?请麻烦您点击 这里 汇报。谢谢您!