【Leetcode】14. 最长公共前缀(Java版)

chatgpt/2023/9/24 2:57:00

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""

示例 1:

输入:strs = ["flower","flow","flight"]
输出:"fl"

示例 2:

输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。

提示:

  • 1 <= strs.length <= 200

  • 0 <= strs[i].length <= 200

  • strs[i] 仅由小写英文字母组成

Hint:带测试版

/*** @description:* @author: r1ng* @time: 2023/7/31 22:07*/
public   class LongestCommonPrefix {public static String  longesCommonPrefix(String[] strs) {//如果输入的strs为空,则返回空字符串""if(strs.length==0){return "";}//定义一个ans为strs.[0],获取到strs的第一个字符串为了一下面的循环比较String  ans = strs[0];for(int i=0; i<strs.length; i++){//在这里定义j=0,而不是在for里面定义;是为了ans.substring(0,j)能调用j的值int j = 0;for(;j<ans.length() && j<strs[i].length(); j++){//比较俩个字符串相同的部分,不相同则退出循环if(ans.charAt(j) != strs[i].charAt(j))break;}//获取从0到j相同的字符串ans = ans.substring(0,j);//如果ans获取的结果为空则返回空字符if(ans.equals(" "))return ans;}//返回最终获取到的ansreturn ans;}public static void main(String[] args) {String [] strs = {"flower","flow","flight"};String s = longesCommonPrefix(strs);System.out.println(s);}
}

Hint:不带测试版本 

class Solution {public String longestCommonPrefix(String[] strs) {//如果输入的strs为空,则返回空字符串""if(strs.length==0){return "";}//定义一个ans为strs.[0],获取到strs的第一个字符串为了一下面的循环比较String  ans = strs[0];for(int i=0; i<strs.length; i++){//在这里定义j=0,而不是在for里面定义;是为了ans.substring(0,j)能调用j的值int j = 0;for(;j<ans.length() && j<strs[i].length(); j++){//比较俩个字符串相同的部分,不相同则退出循环if(ans.charAt(j) != strs[i].charAt(j))break;}//获取从0到j相同的字符串ans = ans.substring(0,j);//如果ans获取的结果为空则返回空字符if(ans.equals(" "))return ans;}//返回最终获取到的ansreturn ans;}
}

当字符串数组长度为 0 时则公共前缀为空,直接返回;
令最长公共前缀 ans 的值为第一个字符串,进行初始化;
遍历后面的字符串,依次将其与 ans 进行比较,两两找出公共前缀,最终结果即为最长公共前缀;
如果查找过程中出现了 ans 为空的情况,则公共前缀不存在直接返回;
时间复杂度:O(s)O(s)O(s),s 为所有字符串的长度之和。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-5314816.html

如若内容造成侵权/违法违规/事实不符,请联系郑州代理记账网进行投诉反馈,一经查实,立即删除!

相关文章

node npm 一些小工具

1.npm nrm 换源 npm i -g nrmnrm 其实就是 NPM registry manager&#xff0c;管理 NPM 源的命令行工具。 $ nrm lsnpm ---------- https://registry.npmjs.org/yarn --------- https://registry.yarnpkg.com/tencent ------ https://mirrors.cloud.tencent.com/npm/cnpm -----…

Python - OpenCV识别条形码、二维码(已封装,拿来即用)

此代码可识别条形码和二维码&#xff0c;已封装好&#xff0c;拿来即用&#xff1a; import cv2 import pyzbar.pyzbar as pyzbar import numpy from PIL import Image, ImageDraw, ImageFontclass CodeScan():def __init__(self):super(CodeScan, self).__init__()def decode…

一名高级前端开发所需具备的技术有哪些?进阶之路是怎样的

2023年下半年,随着互联网的快速发展,前端开发技术也在不断地更新迭代。对于一名高级前端开发来说,不仅需要掌握扎实的基础技能,还需要具备一定的实战经验和创新能力。同时,熟练掌握一些常用的开发框架也是非常必要的。在众多的开发框架中,Vue是目前比较流行的一个,本文将…

前端小练-产品宣传页面

文章目录 前言页面结构固定钉头部轮播JS特效 完整代码总结 前言 经过一个月的爆肝&#xff0c;花费了一个月&#xff08;期间还花费了将近半个月的时间打比赛&#xff0c;还要备研&#xff09;算是把数二高数的内容强化了一遍&#xff0c;接下来刷熟练度即可&#xff0c;可惜的…

Day13-作业(SpringBootWeb AOP)

作业1&#xff1a;完成课上所讲解的 事务管理 及 AOP 的所有练习。【代码能多敲几遍就多敲几遍】 作业2&#xff1a;整理当天课上所讲解的内容Xmind&#xff0c;包括新知识 作业3&#xff1a;基于springAOP技术完成如下需求。 需求&#xff1a; 记录当前 tlias 智能学习辅助系…

【RabbitMQ(day4)】SpringBoot整合RabbitMQ与MQ应用场景说明

一、SpringBoot 中使用 RabbitMQ 导入对应的依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency>配置配置文件 spring:application:name: rabbitmq-springbo…

ES基础-基于Kibana增删改查

ElasticSearch增删改查 #创建索引 PUT shopping #查看索引 GET shopping/_mapping #产看所有信息 GET _cat/indices?v #删除索引 DELETE employee #创建文档添加数据 POST shopping/_doc {"title":"小米手机","category":"小米&qu…

iOS使用Rust调研

编辑已恢复 我们已与您断开连接。尝试重连时会保存您所做的变更。尝试重连 标题 1 已保存 Bin Song B 要发布此内容&#xff0c;请选择键盘上的 ⌘Enter。 发布 关闭 Rust技术空间 … 跨平台使用调研 iOS使用Rust调研 添加表情符号 添加标题图像 添加状态 一、iOS 项…
推荐文章