您的位置:首页 > 编程语言 > Java开发

leetcode-14-最长公共前缀

2017-11-23 18:31 399 查看
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 "";
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 算法