版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/ca1m0921/article/details/89385924
LeetCode : 题目描述:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
我的答案,这次没看 题解,竟然写出来了,开心。
class Solution {
public String longestCommonPrefix(String[] strs) {
StringBuilder sb = new StringBuilder();
int len = strs.length;
if(len == 0){
return "";
}
int minLen = strs[0].length();
boolean flag_1 = true;
char c = 'a';
for(int i = 0; i < len; i++){
minLen = strs[i].length() < minLen? strs[i].length() : minLen;
}
for(int i = 0; i < minLen; i++){
for(int j = 0; j < len-1; j++){
if(strs[j].charAt(i) != strs[j+1].charAt(i)){
flag_1 = false;
break;
}
c = strs[j].charAt(i);
}
if(flag_1){
sb.append(c);
}
}
if(sb.length() == 0){
return "";
}else{
return sb.toString();
}
}
}
其中,需要注意的是,第一次用 int minLen = strs[0].length(); 写了 Integer.MAX_VALUE,当时写的时候就有点担心,没想到提交直接 溢出了。后来写 int minLen = strs[0].length(); 提交发现 测试有个 “” 空参数,直接报了 越位。 最后加了个空数组判断,终于过了。 以后改动代码,一定要小心谨慎、
另外,使用了 flag 开关,我觉得写得很烂,但是暂时这样了,以后变成大神了再来刷。
评级:
未完待续。。。
0.0.1