博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode: Longest Common Prefix 解题报告
阅读量:7038 次
发布时间:2019-06-28

本文共 2090 字,大约阅读时间需要 6 分钟。

Longest Common Prefix Total Accepted: 24665 Total Submissions: 92370

Question

 Solution 

 

Write a function to find the longest common prefix string amongst an array of strings.

 

Show Tags

 

Have you met this question in a real interview? Yes No

 

SOULTION1:

解法就是扫一次。不过各种边界条件很容易出错。

1 public class Solution { 2     public String longestCommonPrefix(String[] strs) { 3         if (strs == null) { 4             return null; 5         } 6          7         if (strs.length == 0 || strs[0].length() == 0) { 8             return ""; 9         }10         11         int len = strs[0].length();12         int i = 0;13         for (; i < len; i++) {14             char c = strs[0].charAt(i);15             16             int j = 1;17             for (; j < strs.length; j++) {18                 if (strs[j].length() <= i || c != strs[j].charAt(i)) {19                     break;20                 }21             }22             23             // there is err.24             if (j < strs.length) {25                 break;26             }27         }28         29         // The char i is invalid. 因为读到i时退出,所以不应包含i本身。30         return strs[0].substring(0, i);31     }32 }
View Code

 

SOULTION2:

感谢大神的灵感

重新改写:

1 public class Solution { 2     //http://blog.csdn.net/fightforyourdream/article/details/14642079 3     public String longestCommonPrefix(String[] strs) { 4         if (strs == null) { 5             return null; 6         } 7          8         if (strs.length == 0) { 9             return "";10         }11         12         String s = strs[0];13         int len = s.length();14         15         for (int i = 0; i < len; i++) {16             char c = s.charAt(i);17             18             for (int j = 1; j < strs.length; j++) {19                 if (strs[j].length() <= i || c != strs[j].charAt(i)) {20                     // The char i is invalid. 因为读到i时退出,所以不应包含i本身。21                     return s.substring(0, i);22                 }23             }24         }25         26         // Didn't break, the whole String is valid.27         return s;28     }29 }
View Code

 

请Floow主页君的GitHUB: 

 

你可能感兴趣的文章
窥探SDWebImage
查看>>
Android6 0权限机制(三):6 0以前国产手机权限处理
查看>>
Linux 内核 101:NUMA架构
查看>>
推荐一个采用方便程序员在线动画学习常用算法的良心网站
查看>>
SQLServer之修改触发器
查看>>
如何使用SpringMvc处理Rest异常
查看>>
Golang学习笔记(二):五大声明语句
查看>>
springboot mybatis 项目框架源码 shiro 集成代码生成器 ehcache缓存
查看>>
【我读《Big Data》】引言部分--大数据,一场生活,工作,思维的变革
查看>>
Python 3 学习笔记之——基础语法
查看>>
Java反射 私有字段和方法
查看>>
AWS光缆被挖后对架构设计的一点总结(二)
查看>>
高性能MySQL读书笔记一
查看>>
用TableView实现分组列表展示
查看>>
排序(中_对数阶)
查看>>
11.JDK动态代理理解与拦截器
查看>>
[译] 从 Cron 到 Airflow 的迁移中我们学到了什么
查看>>
JavaScript继承总结
查看>>
Dropdown 组件实现思路
查看>>
new fn() 做了什么
查看>>