最长公共前缀(java实现)
题目:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
输入: ["flower","flow","flight"] 输出: "fl"
示例 2:
输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z
。
分析:
1.数组中放的是字符串,每个字符串也有自己的长度
2.需要找到数组中最短的字符串,因为其他字符超了的不可能和这个字符再有交集
3.定1,让后面的字符和第一个字符的每一个元素比较,相同的返回。
代码如下:
class Solution {public String longestCommonPrefix(String[] strs) {if(strs == null || strs.length == 0){return "";} if(strs.length == 1){return strs[0];}int len = strs[0].length();for(String str:strs){len = Math.min(len,str.length()); //得到字符数组里面最短字符的长度}if(len == 0){ //其中的一个字符为空的情况return " ";}StringBuffer res = new StringBuffer(len);//每个字符只需要遍历到最小长度即可,因为大于最小长度字符的那一部分不可能有公共for(int j = 0; j < len;j++){ for(int t= 0;t < strs.length;t++){if(strs[t].charAt(j) != strs[0].charAt(j)){ //每个与第一个字符开始比较,也就是与下标为0的字符的元素比较。return res.toString();}}res.append(strs[0].charAt(j)); //相同就加进结果集}return res.toString();}
}
我在LeetCode看到一种解法,时间复杂度看着很小,因为它利用了Java特有的函数。但是函数内部的时间复杂度就不明而已了。这个代码也是比较简洁的。我们来看看:
代码如下:
class Solution {public String longestCommonPrefix(String[] strs) {String ret = "";if(strs.length == 0) return ret;if(strs.length == 1) return strs[0];ret = strs[0];for(int i = 1; i < strs.length; i++){while (!strs[i].startsWith(ret)){ //判断与第一个元素的相同字符ret = ret.substring(0, ret.length()-1);if (ret.length() == 0){return "";}}}return ret;}
}
转载于:https://www.cnblogs.com/youdiaodaxue16/p/10749844.html
最长公共前缀(java实现)相关推荐
- LeetCode--014--最长公共前缀(java)
编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow" ...
- java小编程---最长公共前缀
package com.ujiuye.two; /*** 最长公共前缀:输入["file","filuueh","fighhughjvsa" ...
- java两个字符串前缀_java – 找到两个字符串的最长公共前缀
我想找到两个字符串的最长公共前缀. 有没有办法循环我的最后几个if语句,以便我可以结束彼此不匹配的最后几个字符? System.out.println("Enter the first st ...
- [Leedcode][JAVA][第14题][最长公共前缀][二分][横竖扫描][分治]
[问题描述][中等] 编写一个函数来查找字符串数组中的最长公共前缀.如果不存在公共前缀,返回空字符串 "".示例 1:输入: ["flower","f ...
- java查询字符串公共前缀_No.14 最长公共前缀(Java)
题目描述 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 输入: ["flower","flow&qu ...
- 力扣——最长公共前缀
最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入:strs = ["flower",&q ...
- LeetCode 第 59 场力扣夜喵双周赛(最短路径数+迪杰斯特拉、动态规划+最长公共前缀问题) / 第255场周赛(二进制转换,分组背包,子集还原数组(脑筋急转弯))
第 59 场力扣夜喵双周赛 两道400多五百,后两道都写出代码来了,但是都有问题,哭辽- 还有刚开始第一道测试好慢,搞心态了 5834. 使用特殊打字机键入单词的最少时间 有一个特殊打字机,它由一个 ...
- 【力扣网练习题】最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow" ...
- leetcode--最长公共前缀--python
文章目录 题目 题目详情 示例 解题思路 代码 运行结果 最佳方案 题目 题目详情 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 ...
最新文章
- as3.0中如何阻止事件冒泡?
- Neurala与CSDN宣布战略合作,将一站式AI平台BrainBuilder带给中国开发者
- Codewars Vasya - Clerk--6 kyu--Python解法
- postgresql GUC 参数
- 性别从后台获取得值的那点事儿
- 1131 Subway Map (30 分)【难度: 难 / Dijkstra最短路】
- 给具有SAP传统产品ABAP开发经验的朋友介绍SAP C4C
- php年月日滚动选择,Unity3d—做一个年月日选择器(Scroll Rect拖动效果优化)— 无限滚动 + 锁定元素...
- linux la 的使用方法,Linux简介及常用命令使用4--linux高级命令与技巧(示例代码)
- 2021天猫双11:阿里巴巴业务已全部跑在阿里云上
- Ray.Xu 写得 RTEMS 介绍(最新版本,全面,覆盖了CVS Head)
- SAS Viya应用简介
- 随手记android面试题,synchorinzed的一个面试题
- 以太坊 事务处理流程
- 在windows 2008 R2上无法运行vc 2015的程序,显示缺少api-ms-win-crt-string-|1-1-0.dll的解决
- linux中文件夹删不掉,Linux无法删除文件夹 Device or resource busy
- 环境会计信息披露问题研究
- 在腾讯云上创建CLAA产品
- 数据可视化笔记7 网络数据可视化
- 悲观锁 乐观锁的原理及应用场景
热门文章
- 如何写出《黄焖鸡米饭是怎么火起来的》这样的文章
- iOS动态部署之RSA加密传输Patch补丁
- Ceph的架构(一)
- Android JNI入门第一篇——HelloJni
- [整理]MySql批量数据导入Load data infile解决方案
- System Center 2012与vCenter Operations 产品功能对比
- SQL Server 2000 安装中的“一般性网络错误”
- 昆曲,古琴,苏州评弹
- 专门给大学做宣传视频的公司,一直干了16年,服务110多大学: 专业的力量
- 【转】从Mac/OS和iOS开放源码浅谈UNIX家谱