Longest Common Prefix 解答
2024-10-21 10:19:53
Question
Write a function to find the longest common prefix string amongst an array of strings.
Solution
第一思路是用Trie,但是对于一道Easy类别的题目,用Trie显然是杀鸡用牛刀。
于是我们可以参考到构造Trie的过程,来找这个最长prefix。
我们先用String array中第一个String初始化Pre,然后遍历剩下的每一个String,找重合的终点,删除不重合的部分。
public class Solution {
public String longestCommonPrefix(String[] strs) {
if (strs == null || strs.length < 1) {
return "";
}
int length = strs.length;
int initLen = strs[0].length();
StringBuilder result = new StringBuilder(initLen);
for (int i = 0; i < initLen; i++) {
result.append(strs[0].charAt(i));
}
for (int i = 1; i < length; i++) {
String curString = strs[i];
initLen = result.length();
for (int j = 0; j < initLen; j++) {
if (j < curString.length() && curString.charAt(j) == result.charAt(j)) {
continue;
}
result.delete(j, initLen);
break;
}
}
return result.toString();
}
}
更简单的方法是用String.indexOf()的方法来判断重合终点。
public class Solution {
public String longestCommonPrefix(String[] strs) {
if (strs == null || strs.length < 1) {
return "";
}
int length = strs.length;
int initLen = strs[0].length();
String prev = strs[0];
for (int i = 0; i < length; i++) {
String curString = strs[i];
while (curString.indexOf(prev) != 0) {
prev = prev.substring(0, prev.length() - 1);
}
}
return prev;
}
}
最新文章
- 高访问量WEB开发中的架构模式,学习从点滴开始
- thinkphp基于角色的权限控制详解
- java 中变量的存储与引用
- 百度Web富文本编辑器ueditor在ASP.NET MVC3项目中的使用说明
- Web:AJAX的详解
- RAII惯用法详解
- mysql 大数据量求平均值
- 为php安装memcached扩展连接memcached服务器
- [转]Linux文件和目录操作命令
- Web Server 和 HTTP 协议
- 宏HASH_GET_FIRST
- Stage3D学习笔记(五):通过矩阵操作纹理
- Python之路【第一篇】:Python前世今生
- 对config配置文件的读取和修改
- 在cmd中输入ls命令出现“ls不是内部或外部命令解决
- go get 代理设置
- 多云时代,海外微软Azure云与国内阿里云专线打通性能测试
- [笔记]我的Linux入门之路 - 03.Java环境搭建
- Hybrid App混合模式开发的了解
- ORACLE数据库管理常用查询语句