<span style="color:#ff4635">敬请关注博客,后期不断更新优质博文,谢谢</span>
package leetcode.T014_LongestCommonPrefix;
/**
* @Title: Solution.java
* @Package leetcode.T014_LongestCommonPrefix
* @Description: TODO
* @author zhouzhixiang
* @date 2017-6-6 下午11:07:25
* @version V1.0
*/
public class Solution {
/**
* <pre>
* 原题
* Write a function to find the longest common prefix string amongst an array of strings.
*
* 题目大意
* 写一个函数找出一个字串所数组中的最长的公共前缀。
*
* 思路:
* 先找出长度最短的字符串,然后将此最短字符串与其他字符串比较,找出最小公共前缀
* </pre>
*
* @param strs
* @return
*/
public static void main(String[] args) {
String[] str = {"abcfdsg","abcrrr","abcd","abcde","abcdef","abcdefg"};
String s = new Solution().findLongestCommonPrefix(str);
System.out.println(s);
}
/**
* @Title: findLongestCommonPrefix
* @Description: TODO
* @param @param str
* @param @return
* @return String
* @throws
*/
private String findLongestCommonPrefix(String[] str) {
if(str==null )
{
return null;
}
if(str.length==0){
return "";
}
int min = Integer.MAX_VALUE;
// 找出最短字符串
for(String s : str){
if(min>s.length()){
min = s.length();
}
}
int i;
// 遍历判断,依据最短字符串长度进行遍历
for(i=0; i<min; i++){
boolean flag = true;
for(int j=0; j<str.length;j++){
if(str[0].charAt(i)!=str[j].charAt(i)){
flag = false;
break;
}
}
if(!flag){
break;
}
}
String string = str[0].substring(0, i);
return string;
}
}
欢迎加入Java猿社区