【leetCode】14.最长公共前缀

版权声明:本文为博主原创文章,转载请注明出处。 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

猜你喜欢

转载自blog.csdn.net/ca1m0921/article/details/89385924