当前位置:
首页 >
2019-03-5-算法-进化(最长公共前缀)
发布时间:2023/12/4
44
豆豆
生活随笔
收集整理的这篇文章主要介绍了
2019-03-5-算法-进化(最长公共前缀)
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
题目描述
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入: ["flower","flow","flight"] 输出: "fl"示例 2:
输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。说明:
所有输入只包含小写字母 a-z 。
我的初版解决思路为遍历数组,挨个字符进行比较,直到结束。代码如下:
//循环遍历,有两种退出条件: 1,数组最短元素 2,数组内String相同位置字符不同public String longestCommonPrefix(String[] strs) {if(strs == null || strs.length ==0) {return "";}StringBuilder sb = new StringBuilder();boolean toEnd = false;for(int i=0;;i++) {if(toEnd) {break;}for(String arr:strs) {if(i >= arr.length()) {//1,数组最短元素if(sb.length()>i) {sb.deleteCharAt(i);}toEnd =true;break;}if(sb.length()<=i) {sb.append(arr.charAt(i));}else if(sb.charAt(i) != arr.charAt(i)) {//2,数组内String相同位置字符不同sb.deleteCharAt(i);toEnd =true;break;}}}return sb.toString();}采用水平扫描法进行优化
举例:
最终优化代码如下:
代码简洁清晰了很多。
持续精进,加油!
总结
以上是生活随笔为你收集整理的2019-03-5-算法-进化(最长公共前缀)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 毛毛姐到底是谁毛毛姐的原名叫什么
- 下一篇: kettle 空字符串 null问题解