此博客链接:
最长公共前缀
题目链接:
题目
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入:strs = ["flower","flow","flight"]
输出:"fl"
示例 2:
输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。
题解
找最长公共子序列,可以先取数组中的第一个单词(假设为最大公共子序列),然后把第一个和后面每个单词的每个字母逐步比较,如果有不相等的,就更新最大公共子序列的值。
代码
class Solution { public String longestCommonPrefix(String[] strs) { if(strs.length==0) { return ""; } String res=strs[0]; for(int i=1;i<strs.length;i++){ int j=0; for(;j<res.length()&&j<strs[i].length();j++){ if(res.charAt(j)!=strs[i].charAt(j)){ break; } } res=res.substring(0,j); if(res.equals(" ")){ return ""; } } return res; } }
结果
注意点
1.字符串取长度使用length时,后面需要添加小括号,而数组不需要小括号。
2.java中对比两个字符串是否相等时,需要使用equals,这比较的是值是否相等,而在比较字符时,使用等号。