Longest Common Prefix
Total Accepted: 4226 Total Submissions: 15745 My Submissions
Write a function to find the longest common prefix string amongst an array of strings.
最直接的办法就是循环数组,依次迭代求最长前缀。不过这样会超时。
为了减少不必要的循环,可以扫描数组,求出最短的字符串。
第二次扫描的时候,和最短的字符串匹配,匹配到了,长度就加1,否则就break。
那么最长前缀应该就是最短字符串的sub。
Java AC
Total Accepted: 4226 Total Submissions: 15745 My Submissions
Write a function to find the longest common prefix string amongst an array of strings.
最直接的办法就是循环数组,依次迭代求最长前缀。不过这样会超时。
为了减少不必要的循环,可以扫描数组,求出最短的字符串。
第二次扫描的时候,和最短的字符串匹配,匹配到了,长度就加1,否则就break。
那么最长前缀应该就是最短字符串的sub。
Java AC
public class Solution {
public String longestCommonPrefix(String[] strs) {
if(strs == null || strs.length == 0){
return "";
}
int len = strs.length;
int minLen = Integer.MAX_VALUE;
int index = -1;
for (int i = 0; i < len; i++) {
int tempLen = strs[i].length();
if (minLen > tempLen ) {
minLen = tempLen;
index = i;
}
}
String shortStr = strs[index];
for (int i = 0; i < len; i++) {
int j = 0;
for (; j < minLen; j++) {
if (strs[i].charAt(j) != shortStr.charAt(j)) {
break;
}
}
if (j < minLen) {
minLen = j;
}
}
return shortStr.substring(0,minLen);
}
}