14-最长公共前缀
最长公共前缀是一个经典的问题,编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
比如:
输入: ["flower","flow","flight"]
输出: "fl"
输入: ["dog","racecar","car"]
输出: ""
这里我采用的是暴力破解的方法,首先写一个函数Changeprefix,用于返回两个字符串的前缀,
然后在主函数内对这个字符串数组遍历,每次调用Changeprefix函数,返回前缀,如果返回的
为空,立即终止执行,返回“”;当然,如果题中给的数组为空,也要立即返回“”;
代码:
1 class Solution { 2 public String longestCommonPrefix(String[] strs) { 3 if(strs.length==0) 4 return ""; 5 String prefix=strs[0]; 6 for(int i=1;i<strs.length;i++) 7 { 8 prefix=Changeprefix(prefix,strs[i]); 9 } 10 if (prefix.length()==0) 11 return ""; 12 return prefix; 13 14 } 15 public String Changeprefix(String str1,String str2) 16 { 17 int length =Math.min(str1.length(),str2.length()); 18 int index=0; 19 while(index<length&&str1.charAt(index) == str2.charAt(index)) 20 { 21 index++; 22 } 23 return str1.substring(0,index); 24 } 25 }