14. Longest Common Prefix
来源:互联网 发布:北京淘宝电商培训 编辑:程序博客网 时间:2024/06/11 06:01
题目
求字符串数组的最长公共子串
解决思路
这题算比较简单的了,思路有很多,下面我就提供一种思路。
既然要求字符串数组的最长公共子串,那么这个公共子串的长度肯定不大于最短的字符串数组,并且,这个公共子串,不仅字符是一样的,而且索引位置也必须一样(LeetCode上是这么理解的,我在做这题的时候也没有意识到这点)所以,我们可以先找到最短的字符串,然后以这个最短的字符串为标准,那么就很容易求出最大的公共子串。
下面则是该思路的Java程序:
public String longestCommonPrefix(String[] strs) { if(strs.length == 0) return ""; // 1.求数组中最短的字符串 int minlen = strs[0].length(); int minIndex = 0; for(int i = 0;i < strs.length;i++){ if(minlen > strs[i].length()) { minlen = strs[i].length(); minIndex = i; } } if(minlen == 0) return ""; // 2.求公共的字符串 StringBuffer sb = new StringBuffer(); int index = 0; while(index < minlen) { sb.append(strs[minIndex].charAt(index)); for (int k = 0; k < strs.length; k++) { if (!strs[k].startsWith(sb.toString())) { if(index == 0) return ""; else{ sb.deleteCharAt(sb.length()-1);//由于最后一个不包含在公共子串中,所以需要删除 return sb.toString(); } } } index++; } return sb.toString(); }
由程序可以看出,该算法的时间复杂度最大为
阅读全文
2 0
- 14. Longest Common Prefix
- 14.Longest Common Prefix
- 14. Longest Common Prefix
- 14. Longest Common Prefix
- 14. Longest Common Prefix
- 14. Longest Common Prefix
- 14. Longest Common Prefix
- 14. Longest Common Prefix
- 14. Longest Common Prefix
- 14. Longest Common Prefix
- 14. Longest Common Prefix
- 14. Longest Common Prefix
- 14. Longest Common Prefix
- 14. Longest Common Prefix
- 14. Longest Common Prefix
- 14. Longest Common Prefix
- 14. Longest Common Prefix
- 14. Longest Common Prefix
- SQL学习之排序与过滤
- HDU6071-Lazy Running 最短路+思维
- Java冒泡排序
- 质数因子
- 关于myBstis操作
- 14. Longest Common Prefix
- webpack基础+webpack配置文件常用配置项介绍+webpack-dev-server
- 在matlab中寻找曲线上离原点距离最近的点的坐标的思考
- Android学习之网络请求(volley)二
- 先熟悉python框架,再通过具体应用熟悉掌握。8-5-2017
- HDU 5193 块状链表求带插入删除操作的全局逆序对数
- 优秀的Android图表开源控件
- 2017日照夏令营 day6 t3 exist
- 柯里化再谈