题目
https://leetcode.cn/problems/longest-common-prefix/
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串""
。
示例 1:
1 2
| 输入:strs = ["flower","flow","flight"] 输出:"fl"
|
示例 2:
1 2 3
| 输入:strs = ["dog","racecar","car"] 输出:"" 解释:输入不存在公共前缀。
|
思路
公共前缀就是所有字符串中都有的前缀,且从从头开始必须连续型的相同才能叫做前缀,我们可以将每个字符串的第一个字符最比较,如果相同则加入到一个公共前缀中,如果不同则停止遍历,循环也在这里结束。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| public static String longestCommonPrefix(String[] strs) { int len = strs.length; if(len==1){ return strs[0]; } StringBuilder stringBuffer = new StringBuilder(""); for (int i = 0; i < strs[0].length() ; i++) { for (int j = 1; j < len; j++) { if(strs[j].length() <= i){ break; } char c=strs[j-1].charAt(i); char c1=strs[j].charAt(i); if(c==c1 && j==len-1 && stringBuffer.length()==i){ stringBuffer.append(c); }else if (c!=c1){ break; } } } return stringBuffer.toString(); }
|