LeetCode 014 Longest Common Prefix
来源:互联网 发布:淘宝 排名 编辑:程序博客网 时间:2024/05/22 05:01
题目
Write a function to find the longest common prefix string amongst an array of strings.
1 思路很简单,从数组中找出最小字符串,然后根据最小字符串来匹配全部字符串的前缀。
2 如果需要优化,可以在遍历最小字符串的前缀的时候使用半分法。
3 难点在于,字符串的length和数组的length混在一起,数组下标[]和方法()混在一起,容易写错。
public class Solution { public String longestCommonPrefix(String[] strs) { if(strs.length==0){ return ""; } int num = strs.length; int shortestlength = strs[0].length(); int shortindex = 0; for(int i=0;i<num;i++){ int ln = strs[i].length(); if(ln<shortestlength){ shortestlength= ln; shortindex = i; } } String shortestString = strs[shortindex]; while(shortestlength>0){ String sub = shortestString.substring(0,shortestlength); int i; for(i=0;i<num;i++){ if(!strs[i].substring(0,shortestlength).equals(sub)){ break; } } if(i==num){ break; } else{ shortestlength--; } } return shortestString.substring(0,shortestlength); }}
15.3.17
public class Solution { public String longestCommonPrefix(String[] strs) { if(strs == null ){ return null; } int n = strs.length; String minStr = ""; int minLength = Integer.MAX_VALUE; for(int i=0;i<n;i++){ if(strs[i].length()<minLength){ minLength = strs[i].length(); minStr = strs[i]; } } for(int i=0;i<minStr.length();i++){ char cur = minStr.charAt(i); for(int j=0;j<n;j++){ if(strs[j].charAt(i)!=cur){ return minStr.substring(0,i); } } } return minStr; }}
注意JAVA的substring(startIndex,endIndex)和 substring(startindex)
0 0
- LeetCode 014 Longest Common Prefix
- LeetCode 014 Longest Common Prefix
- LeetCode 014 Longest Common Prefix
- [LeetCode]014-Longest Common Prefix
- LeetCode 014 Longest Common Prefix
- leetcode-014-Longest Common Prefix
- LeetCode-014 Longest Common Prefix
- LeetCode: Longest Common Prefix
- LeetCode Longest Common Prefix
- LeetCode : Longest Common Prefix
- [Leetcode] Longest Common Prefix
- [LeetCode] Longest Common Prefix
- [LeetCode]Longest Common Prefix
- LeetCode-Longest Common Prefix
- [LeetCode] Longest Common Prefix
- LeetCode - Longest Common Prefix
- leetcode Longest Common Prefix
- LeetCode | Longest Common Prefix
- Android权限之sharedUserId和签名
- javax.xml.transform.TransformerConfigurationException: Could not compile stylesheet
- 学习资源汇总
- 网络\路由器 端口映射的作用
- css3 box-sizing属性
- LeetCode 014 Longest Common Prefix
- 如何完全备份android系统上的system分区和data分区
- 类的内存结构
- Android中FTP上传、下载(含进度)
- ACM 90. 翻译玛雅著作(改版字符串O(n)匹配,尺取法)
- 我对java String的理解 及 源码浅析
- TRK文件转换为VTK文件的方法
- 视频人脸重建
- yum的配置详解