题目链接
题目描述
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入:strs = ["flower","flow","flight"] 输出:"fl"
示例 2:
输入:strs = ["dog","racecar","car"] 输出:"" 解释:输入不存在公共前缀。
题目解析
- 题目给你一个字符串数组,让你求
字符串数组中从开头最长的公共前缀
- 例如:
["flower","flow","flight"]的公共前缀是fl,而["flower","owfl","flight"]则是空
- 我们使用暴力遍历
- 将字符串数组中的第一个字符串当成我们的比较串(因为是公共的前缀,必然小于等于我们的第一个字符串)
- 每次我们取第一个字符串的第
i
个字符,和另外字符串的第i
个字符相比较
- 若全部相等,则向我们的
StringBuffer
中添加即可 - 若有一个不等,则直接返回我们的
StringBuffer。toString()
题目代码
public String longestCommonPrefix(String[] strs) { int len1 = strs[0].length(); int len2 = strs.length; StringBuffer stringBuffer = new StringBuffer(); for(int i = 0; i < len1; i++){ char s = strs[0].charAt(i); for(int j = 1; j < len2; j++){ if(s != strs[j].charAt(i)){ return stringBuffer.toString(); } } stringBuffer.append(s); } return stringBuffer.toString(); }