leetcode-最长公共前缀
最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
输入: ["flower","flow","flight"] 输出: "fl"
示例 2:
输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z
。
这道题和上一道题str(str())有些相似,都需要设置标记flag,同时有一个不满足就跳出,这里用的是两次跳出break。
class Solution { public String longestCommonPrefix(String[] strs) { int len=strs.length; String res=""; if(strs.length==0)return res; int count=0; int min=Integer.MAX_VALUE; //从中挑选出最小的字符串比较,如果这个字符串也比较完了,那么不需要比较了 for(int i=0;i<len;i++){ if(strs[i].length()<min)min=strs[i].length(); } while(count<min){ int flag=1; for(int i=1;i<len;i++){ if(strs[i-1].length()==0)return res; if(strs[i].charAt(count)!=strs[i-1].charAt(count)){ //只要有一个字符串不满足,2次break,不用比较直接出结果 flag=0; break; } } if(flag==0) break; res=res+strs[0].charAt(count); //将公共的前缀加进去 count++; //可以比较下一个字符串了 } return res; } }