Write a function to find the longest common prefix string amongst an array of strings.
题意为编写一个函数来查找字符串数组中最长的公共前缀字符串。
这道题并不难想,首先对传入的字符串数组进行排序,然后只需要对比第一个与最后一个字符串,即可得到最长公共前缀了。
代码:
import java.util.Arrays;
import java.util.Scanner;
public class leetcode14 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
leetcode14 lt = new leetcode14();
String [] strs = new String[5];
for (int i = 0; i < 5; i ++){
strs[i] = input.next();
}
System.out.println(lt.longestCommonPrefix(strs));
}
//AC!!
public String longestCommonPrefix(String[] strs) {
String ans;
if (strs != null && strs.length >0) { //防止坑爹情况
int num = 0;
Arrays.sort(strs); // 给数组排序
char[] one = strs[0].toCharArray();
char[] end = strs[strs.length - 1].toCharArray();
//取第一个和最后一个字符串进行比较
for (int i = 0; i < one.length; i++) {
if (one[i] == end[i])
num++;
else
break;
}
//如果第一个字符都不相等,那就return"";
if (num == 0) {
return "";
}
//变成String类型返回
char[] temp = new char[num];
for (int i = 0; i < num; i++) {
temp[i] = one[i];
}
ans = String.valueOf(temp);
return ans;
}
return "";
}
}