[leetcode]14. Longest Common Prefix(Java)
2017-07-18 10:04
337 查看
接下来有一段时间要开始刷leetcode中String相关的题了
https://leetcode.com/problems/longest-common-prefix/#/description
Write a function to find the longest common prefix string amongst an array of strings.
package go.jacob.day718;
import java.util.Arrays;
/**
*
* @author Jacob
*
*/
public class Demo1 {
/*
* 对字符串数组进行排序,然后只要比较首尾两个字符串即可
*/
public String longestCommonPrefix(String[] strs) {
StringBuilder result = new StringBuilder();
if (strs!= null && strs.length > 0){
Arrays.sort(strs);
char [] a = strs[0].toCharArray();
char [] b = strs[strs.length-1].toCharArray();
for (int i = 0; i < a.length; i ++){
if (b.length > i && b[i] == a[i]){
result.append(b[i]);
}
else {
return result.toString();
}
}
return result.toString();
}
/*
* O(N^2)的解法
*/
public String longestCommonPrefix_1(String[] strs) {
if (strs == null || strs.length == 0)
return "";
int len = strs.length;
int min = strs[0].length();
for (int i = 1; i < len; i++) {
if (strs[i].length() < min)
min = strs[i].length();
}
int res = -1;
boolean flag = false;
for (int i = 0; i < min; i++) {
char tmp = strs[0].charAt(i);
for (int j = 1; j < len; j++) {
if (strs[j].charAt(i) != tmp) {
flag = true;
break;
}
}
if (flag)
break;
res = i;
}
return strs[0].substring(0, res + 1);
}
}
https://leetcode.com/problems/longest-common-prefix/#/description
Write a function to find the longest common prefix string amongst an array of strings.
package go.jacob.day718;
import java.util.Arrays;
/**
*
* @author Jacob
*
*/
public class Demo1 {
/*
* 对字符串数组进行排序,然后只要比较首尾两个字符串即可
*/
public String longestCommonPrefix(String[] strs) {
StringBuilder result = new StringBuilder();
if (strs!= null && strs.length > 0){
Arrays.sort(strs);
char [] a = strs[0].toCharArray();
char [] b = strs[strs.length-1].toCharArray();
for (int i = 0; i < a.length; i ++){
if (b.length > i && b[i] == a[i]){
result.append(b[i]);
}
else {
return result.toString();
}
}
return result.toString();
}
/*
* O(N^2)的解法
*/
public String longestCommonPrefix_1(String[] strs) {
if (strs == null || strs.length == 0)
return "";
int len = strs.length;
int min = strs[0].length();
for (int i = 1; i < len; i++) {
if (strs[i].length() < min)
min = strs[i].length();
}
int res = -1;
boolean flag = false;
for (int i = 0; i < min; i++) {
char tmp = strs[0].charAt(i);
for (int j = 1; j < len; j++) {
if (strs[j].charAt(i) != tmp) {
flag = true;
break;
}
}
if (flag)
break;
res = i;
}
return strs[0].substring(0, res + 1);
}
}
相关文章推荐
- Leetcode:14. Longest Common Prefix(JAVA)
- LeetCode 14 Longest Common Prefix (C,C++,Java,Python)
- LeetCode14. Longest Common Prefix(字典树:最长公共前缀)
- LeetCode : Longest Common Prefix [java]
- (JAVA)LeetCode-14. Longest Common Prefix
- LeetCode 14. Longest Common Prefix(字符串)
- LeetCode-Easy-Java-Longest Common Prefix
- leetcode:java.T014_LongestCommonPrefix--写一个函数找出一个字串所数组中的最长的公共前缀
- Leetcode 14. Longest Common Prefix (Easy) (cpp)
- Longest Common Prefix leetcode java
- LeetCode 14 — Longest Common Prefix(C++ Java Python)
- Leetcode 14. Longest Common Prefix(python)
- LeetCode 14 : Longest Common Prefix (Java)
- [Java]Leetcode14 Longest Common Prefix
- 【leetcode-14】Longest Common Prefix(java)
- Java [leetcode 14] Longest Common Prefix
- (java)leetcode Longest Common Prefix
- leetcode-14. Longest Common Prefix(寻找字符串数组最长公共前缀)
- LeetCode系列之——14. Longest Common Prefix(JavaScript)
- [LeetCode][Java] Longest Common Prefix