首页 > 代码库 > LeetCode: Longest Common Prefix 解题报告
LeetCode: Longest Common Prefix 解题报告
Longest Common Prefix Total Accepted: 24665 Total Submissions: 92370
My Submissions
Question
Solution
Write a function to find the longest common prefix string amongst an array of strings.
Show Tags
Have you met this question in a real interview? Yes No
Discuss
SOULTION1:
解法就是扫一次。不过各种边界条件很容易出错。
1 public class Solution { 2 public String longestCommonPrefix(String[] strs) { 3 if (strs == null) { 4 return null; 5 } 6 7 if (strs.length == 0 || strs[0].length() == 0) { 8 return ""; 9 }10 11 int len = strs[0].length();12 int i = 0;13 for (; i < len; i++) {14 char c = strs[0].charAt(i);15 16 int j = 1;17 for (; j < strs.length; j++) {18 if (strs[j].length() <= i || c != strs[j].charAt(i)) {19 break;20 }21 }22 23 // there is err.24 if (j < strs.length) {25 break;26 }27 }28 29 // The char i is invalid. 因为读到i时退出,所以不应包含i本身。30 return strs[0].substring(0, i);31 }32 }
SOULTION2:
感谢大神的灵感http://blog.csdn.net/fightforyourdream/article/details/14642079
重新改写:
1 public class Solution { 2 //http://blog.csdn.net/fightforyourdream/article/details/14642079 3 public String longestCommonPrefix(String[] strs) { 4 if (strs == null) { 5 return null; 6 } 7 8 if (strs.length == 0) { 9 return "";10 }11 12 String s = strs[0];13 int len = s.length();14 15 for (int i = 0; i < len; i++) {16 char c = s.charAt(i);17 18 for (int j = 1; j < strs.length; j++) {19 if (strs[j].length() <= i || c != strs[j].charAt(i)) {20 // The char i is invalid. 因为读到i时退出,所以不应包含i本身。21 return s.substring(0, i);22 }23 }24 }25 26 // Didn‘t break, the whole String is valid.27 return s;28 }29 }
请Floow主页君的GitHUB:
https://github.com/yuzhangcmu/LeetCode_algorithm/blob/master/string/LongestCommonPrefix.java
LeetCode: Longest Common Prefix 解题报告
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。