题目描述:

编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例 1:输入: ["flower","flow","flight"]
输出: "fl"
示例 2:输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
说明:所有输入只包含小写字母 a-z 。来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-common-prefix
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

我的解决方法:

class Solution {public String longestCommonPrefix(String[] strs) {if (strs == null || strs.length == 0) {return "";}if (strs.length == 1){return strs[0];}String str = strs[0];StringBuffer sb = new StringBuffer();out : for (int i = 0; i < str.length(); i++) {char c = str.charAt(i);for (int j = 1; j < strs.length; j++) {if (i >= strs[j].length()) {break out;}if (c != strs[j].charAt(i)) {break out;}}sb.append(c);}return sb.toString();}
}

网上的解决方法:

class Solution {public String longestCommonPrefix(String[] strs) {if(strs==null || strs.length<1){return "";}if(strs.length==1){return strs[0];}//find the shortest stringint shortest=0;int len=strs[0].length();for (int i = 0; i < strs.length; i++) {if(len > strs[i].length()){len=strs[i].length();shortest=i;}}//find the longest common prefixString sub=strs[shortest];for (int i = 0; i < strs.length; i++) {while(strs[i].indexOf(sub)!=0){sub=sub.substring(0, sub.length()-1);}// 这里我优化了一下,如果是空字符串,没必要再循环了。if (sub.equals("")) {break;}}return sub;}
}

总结:

练习算法有长进,学到了东西,写代码,就写最优的。

算法------------ 最长公共前缀相关推荐

  1. 五、Leetcode算法 最长公共前缀

    1.题目 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 输入: ["flower","flow" ...

  2. 【每日一算法】最长公共前缀

    微信改版,加星标不迷路! 每日一算法-最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["fl ...

  3. 采用分治算法迭代计算最长公共前缀问题(python)

    题目 采用分治算法迭代计算最长公共前缀问题(python) 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串"". 示例 1: 输入:strs = ...

  4. python【力扣LeetCode算法题库】14-最长公共前缀(列表解压)

    最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","fl ...

  5. 【最长公共前缀】算法优化笔记

    题目:编写一个函数来查找字符串数组中的最长公共前缀.如果不存在公共前缀,返回空字符串 "". 示例 1:输入: ["flower","flow&quo ...

  6. 【数据结构与算法】之深入解析“最长公共前缀”的求解思路与算法示例

    一.题目要求 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入:strs = ["flower",&q ...

  7. 算法题---最长公共前缀

    题目来源:https://leetcode-cn.com/problems/longest-common-prefix/ 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符 ...

  8. 52 - 算法- leetcode 14 最长公共前缀

    // leetcode 14 最长公共前缀 str.sub(index1,index2)这个函数不清楚 // for(vector中的类class : vector) for 循环中的index 和 ...

  9. 刻意练习:LeetCode实战 -- Task14. 最长公共前缀

    背景 本篇图文是LSGO软件技术团队组织的 第二期基础算法(Leetcode)刻意练习训练营 的打卡任务.本期训练营采用分类别练习的模式,即选择了五个知识点(数组.链表.字符串.树.贪心算法),每个知 ...

最新文章

  1. 结合JDK源码看设计模式——策略模式
  2. 获取AD用户和OU属性字段名称
  3. 计算机也可以看“视频”,理解“视频”
  4. python如何使用图片做背景_用Python批量给照片换底色,基于opencv模块
  5. 微信订阅号开发笔记(三)
  6. Java开发利器:IntelliJ IDEA的安装、配置与使用
  7. 【数据结构与算法】快排、归并 O(nlogn) 基于比较
  8. android studio安装部署及sdk下载_「从零开始Python爬虫」1.7.3 APPium的安装
  9. Linux内核加载全流程
  10. 基于pyqt5的Demo软件开发
  11. Excel 各版本每个sheet 最大行数限制
  12. 模式识别属于计算机科学吗,模式识别与智能系统这个学科属于什么类?
  13. 背景图片,banner图片随屏幕大小变化而变化
  14. python布尔系列_python-布尔运算
  15. PhysX官方手册翻译
  16. 5.Python格式化输出
  17. 棋牌---这些年使用过的技术
  18. POI和EasyExcel实现Excel数据批量读取到数据库
  19. sed 第n行后加入_sed详解
  20. 2.5单星和双星运算符的作用

热门文章

  1. C#调用非托管C++DLL:通过托管C++DLL间接调用
  2. ViSP中识别AprilTag的C++实例代码解释
  3. MFC_Combo_Box(组合框)的详细用法
  4. python 日志 装饰器_【Python】装饰器实现日志记录
  5. python的变量对大小写并不敏感_Robot Framework 内置变量
  6. enq: tt - contention_要签TT或伊巴卡?湖人要走一步大棋,大肆招揽老将,为老詹真拼...
  7. live555点播服务器流程深入分析(一)
  8. mydumper 0.6.2 安装,dba的必备备份工具,必须掌握
  9. #include quot;*.cquot;文件的妙用
  10. JS 触发服务器事件