算法分析与设计作业题
作业来源
Write a function to find the longest common prefix string amongst an array of strings.
If there is no common prefix, return an empty string “”.
Example 1:
Input: [“flower”,“flow”,“flight”]
Output: “fl”
Example 2:
Input: [“dog”,“racecar”,“car”]
Output: “”
Explanation: There is no common prefix among the input strings.
Note:
All given inputs are in lowercase letters a-z.
先将String列表进行排序, 然后只需要找出第一个String和最后一个String相同的前缀即可.
public class Solution {
public String longestCommonPrefix(String[] strs) {
if (strs == null || strs.length == 0) {
return "";
}
Arrays.sort(strs);
StringBuilder result = new StringBuilder();
char[] first = strs[0].toCharArray();
char[] last = strs[strs.length - 1].toCharArray();
for (int i = 0; i < first.length; i++) {
if (last.length > i && last[i] == first[i]) {
result.append(first[i]);
} else {
return result.toString();
}
}
return result.toString();
}
}