leetcode:Longest Common Prefix(取最长字符串前缀)
2013-10-14 23:13
525 查看
Question:Write a function to find the longest common prefix string amongst an array of strings.
写一个功能public String longestCommonPrefix(String[] strs)找出字符串数组的最长公共前缀。
算法思路:① 首先分析最长公共字符串长度一定不会超过最短字符串的长度,所以先找出最短字符串的长度minlength。
② 然后从第一个字符串挨个取字母,加到Str中,然后判断数组其他字符串的前缀是否和str相同 个数不会超过minlength,就能判断该字符串数组最长前缀。
代码设计:
写一个功能public String longestCommonPrefix(String[] strs)找出字符串数组的最长公共前缀。
算法思路:① 首先分析最长公共字符串长度一定不会超过最短字符串的长度,所以先找出最短字符串的长度minlength。
② 然后从第一个字符串挨个取字母,加到Str中,然后判断数组其他字符串的前缀是否和str相同 个数不会超过minlength,就能判断该字符串数组最长前缀。
代码设计:
class Solution { public String longestCommonPrefix(String[] strs) { // Note: The Solution object is instantiated only once and is reused by each test case. String str=""; if(strs.length==0) return str; int minlength=lengthofSmallString(strs); //找到最小字符串长度 for(int count=0;count<minlength;count++){//最长前缀的长度一定不会超过minlength str+=strs[0].charAt(count); //挨个取第一个字符串的字母,然后判断其他字符串前缀是不是str for(int i=0;i<strs.length;i++){ if(!isContains(strs[i], str)){ str=str.substring(0, count); return str; } } } return str; } public Boolean isContains(String str1,String str2){//这个函数的作用是判断str2是否是str1的前缀 for(int i=0;i<str2.length();i++){ if(str1.charAt(i)!=str2.charAt(i)) return false; } return true; } public int lengthofSmallString(String[] strs){ //这个函数的作用找到字符串数组的最小字符串长度并返回。 int min=Integer.MAX_VALUE; for(int i=0;i<strs.length;i++){ if(strs[i].length()<min){ min=strs[i].length(); } } return min; } }
相关文章推荐
- 每日一练之Longest Common Prefix【LeetCode No.14】——求字符串的最长公共前缀
- [转][LeetCode]Longest Common Prefix ——求字符串的最长公共前缀
- Longest Common Prefix 字符串数组中查找最长相同前缀字符串@LeetCode
- leetcode:java.T014_LongestCommonPrefix--写一个函数找出一个字串所数组中的最长的公共前缀
- Longest Common Prefix字符串最长公共前缀问题
- LeetCode 14 Longest Common Prefix 最长前缀
- [Leetcode] longest common prefix 最长共同前缀
- LeetCode 14 Longest Common Prefix(最长公共前缀)
- LeetCode | Longest Common Prefix(最长公共前缀)
- [LeetCode] Longest Common Prefix 最长共同前缀
- leetcode-14. Longest Common Prefix(寻找字符串数组最长公共前缀)
- LeetCode14 Longest Common Prefix 确定最长的前缀字符串
- LeetCode-14-Longest-Common-Prefix 求若干字符串的最大公共前缀
- (LeetCode)Longest Common Prefix --- 最长公共前缀
- [C++]LeetCode 14: Longest Common Prefix(最长公共前缀)
- leetcode Longest Common Prefix不同字符串的公共前缀
- [leetcode] Longest Common Prefix 字符窜最长公共前缀判断
- [LeetCode] Longest Common Prefix 最长共同前缀
- Leetcode:Longest Common Prefix 最长公共前缀
- LeetCode Longest Common Prefix 最长公共前缀