最长公共前缀(Java)
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入:strs = ["flower","flow","flight"]
输出:"fl"
示例 2:
输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。
提示:
1 <= strs.length <= 2000 <= strs[i].length <= 200strs[i]仅由小写英文字母组成
思路分析:如果是个空数组,直接返回空字符串。以第一个字符串作为标准,分别与后面的每个字符串进行比较。
代码实现:
import java.util.Iterator;
//题目链接:https://leetcode.cn/problems/longest-common-prefix/
public class T14 {
	public static void main(String[] args) {
		// 测试一把
		Solution solution = new Solution();
		String[] str = { "flower","flow","flowight"};
		String string = solution.longestCommonPrefix(str);
		System.out.println(string);
	}
}
class Solution {
	public String longestCommonPrefix(String[] strs) {
		if (strs.length == 0) {//如果是个空数组,直接返回空字符串
			return "";
		}
		String ans = strs[0];// 先把数组第一个字符串作为标准
		for (int i = 1; i < strs.length; i++) {// 分别与后面的字符串进行比较
			int j = 0;
			/**
			 *  int j = 0; => 这个写在外面是为了后面能够得到j的值,
			 *  从而得到在哪里有公共前缀,如果写在里面,一旦跳出for循环,将无法得到
			 *  公共前缀的坐标
			 */
			for (; j < ans.length() && j < strs[i].length(); j++) {
				/**
				 * j < ans.length() && j < strs[i].length() => 比较的时候,总得
				 * 在两个要比较的字符串的长度内进行比较,更准确的说,应该是在
				 * 两个字符串中的较短的字符串长度内进行比较
				 */
				if (ans.charAt(j) != strs[i].charAt(j)) {
					//只要发现有一个字符不匹配,则立即跳出循环
					break;
				}
			}
			ans = ans.substring(0, j);//得到公共前缀
			/**
			 * substring(int beginIndex, int endIndex)方法的作用:
			 * 返回一个新字符串,它是此字符串的一个子字符串。
			 * 该子字符串从指定的 beginIndex 处开始,直到索引 endIndex - 1 处的字符。
			 * 因此,该子字符串的长度为 endIndex-beginIndex。
			示例: 
			 "hamburger".substring(4, 8) returns "urge"
			 "smiles".substring(1, 5) returns "mile"
			 */
			if (ans.equals("")) {//如果发现没有公共前缀,则返回空字符串
				return ans;
			}
		}
		return ans;//返回最终结果
	}
}
运行结果:

最长公共前缀(Java)的更多相关文章
- 最长公共前缀(java实现)
		
题目: 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow& ...
 - LeetCode--014--最长公共前缀(java)
		
编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow" ...
 - leetcode.字符串.14最长公共前缀-Java
		
1. 具体题目 编写一个函数来查找字符串数组中的最长公共前缀.如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","fl ...
 - Java算法练习——最长公共前缀
		
题目链接 题目描述 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 说明: 所有输入只包含小写字母 a-z . 示例 1 输入: [&qu ...
 - Java实现 LeetCode 14 最长公共前缀
		
14. 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower",&quo ...
 - [LeetCode]14.最长公共前缀(Java)
		
原题地址: longest-common-prefix 题目描述: 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入:st ...
 - lintcode :最长公共前缀
		
题目 最长公共前缀 给k个字符串,求出他们的最长公共前缀(LCP) 样例 在 "ABCD" "ABEF" 和 "ACEF" 中, LCP ...
 - [LeeCode]14. 最长公共前缀
		
题目链接:https://leetcode-cn.com/problems/longest-common-prefix/ 题目描述: 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀 ...
 - hdoj 2594 Simpsons’ Hidden Talents 【KMP】【求串的最长公共前缀后缀】
		
Simpsons' Hidden Talents Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java ...
 
随机推荐
- vue项目导航菜单实现
			
vue项目导航菜单问题 目标:横向菜单点击跳转,颜色变换,刷新可保持状态 // 模板template中通过循环菜单列表生成,动态类名改变颜色 <li v-for="(item, ind ...
 - 2550--HashMap源码解析
			
JDK版本 1.8 结构: HashMap实现了Map Cloneable Serializable接口: 基础了AbstractMap类,AbstractMap提供一些通用方法,如put remov ...
 - 20170622日行一记之PHP函数
			
fread() 函数读取文件(可安全用于二进制文件) fread(file,length) 参数 描述 file 必需.规定要读取打开文件. length 必需.规定要读取的最大字节数. 该函数在读取 ...
 - 2. 组复制技术架构 | 深入浅出MGR
			
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 1. 传统主从复制技术架构 传统主从复制的方式是在master节点上执行数据更新事务,而后记录这些事务到binlog中,再 ...
 - AgileFontSet迅捷字体设置程序
			
AgileFontSet迅捷字体设置程序-用户手册 AgileFontSet的完整代码,参见 https://www.cnblogs.com/ybmj/p/11683291.html 1.程序特点和 ...
 - 主流前沿的开源监控和报警系统Prometheus+Grafana入门之旅
			
Prometheus概述 定义 Prometheus 官网地址 https://prometheus.io/ Prometheus 官网文档地址 https://prometheus.io/docs/ ...
 - C#/VB.NET 替换 PDF 文件上的现有图像
			
我们都知道对PDF文件进行修改和编辑不是一件容易的事.但有时当我们想用新的图像来替换PDF文件上的现有图像时,该怎么办呢?别担心,本文将向您展示如何在 C#/VB.NET 中替换 PDF 文件中的现有 ...
 - ArcGIS QGIS学习一:打开shp、geojson地图变形变扁问题(附最新坐标边界下载全国省市区县乡镇)
			
目录 打开的地图变扁了 修改投影坐标系 等角圆锥投影 Web墨卡托投影 一些要注意的地方 打开的地图变扁了 记得初学GIS软件时,用ArcGIS或QGIS打开省级地图的时候(shp或geojson等格 ...
 - {版本发布公告}HMS Core 6.6.0来啦
			
分析服务 ◆ 留存分析支持¬将流失用户存为受众,开发者通过对流失人群的分层以及多维分析,在制定相关用户召回策略时将更有针对性: ◆ 原"受众分析"更名为"人群洞察&quo ...
 - 来开源吧!发布开源组件到 MavenCentral 仓库超详细攻略
			
请点赞关注,你的支持对我意义重大. Hi,我是小彭.本文已收录到 GitHub · AndroidFamily 中.这里有 Android 进阶成长知识体系,有志同道合的朋友,关注公众号 [彭旭锐] ...