leetcode算法题记录:
14、最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
输入:strs = ["flower","flow","flight"]
输出:"fl"
示例 2:
输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。
class Solution {public String longestCommonPrefix(String[] strs) {if(strs==null||strs.length==0){return "";}//length:数组,length()字符串长度StringBuilder sb=new StringBuilder();for(int i=0;i<strs[0].length();i++){
char c=strs[0].charAt(i);
for(int j=1;j<strs.length;j++){if(i>=strs[j].length()||strs[j].charAt(i)!=c){return sb.toString();}
}sb.append(c);//对比成功就添加进去}return sb.toString();}
}
先判断数组是否为初始化或者看他长度是否为零,如果这两个条件当中满足一个的话,就直接返回空字符串。然后再定义一个stringBuilder(
常用方法
append()
: 添加内容到字符串末尾insert()
: 在指定位置插入内容delete()
: 删除指定范围内的字符reverse()
: 反转字符串toString()
: 将StringBuilder
转换为String
)
将数组中的前一个和后一个字符串抠出来,然后再将第一个作为确定的对比对象(就是后面的字符串都要和第一个比较一次),然后再把两个字符串中的每个字符抠出来对比,相同就append,不同就直接转为字符串输出。