今天刷两题(day2)

题目一:最长公共前缀

题目描述:
给你一个大小为 n的字符串数组 strs ,其中包含n个字符串 ,
编写一个函数来查找字符串数组中的最长公共前缀,返回这个公共前缀。
输入输出描述:
输入:"abca","abc","abca","abc","abcc"
输出:abc

思路解析:

step 1:处理数组为空的特殊情况。
step 2:因为最长公共前缀的长度不会超过任何一个字符串的长度,因此我们逐位就以第一个字符串为标杆,遍历第一个字符串的所有位置,取出字符。
step 3:遍历数组中后续字符串,依次比较其他字符串中相应位置是否为刚刚取出的字符,如果是,循环继续,继续查找,如果不是或者长度不足,说明从第i位开始不同,前面的都是公共前缀。
step 4:如果遍历结束都相同,最长公共前缀最多为第一个字符串。

作答情况(部分答案错误):

写成了

虽然是或者的关系,但是要先判断是不是长度不足,说明从第i位开始不同,前面的都是公共前缀,不然会抛出StringIndexOutOfBoundsException。

②从键盘中输入字符串数组要掌握。

代码:

public class Main {/*题目描述:给你一个大小为 n的字符串数组 strs ,其中包含n个字符串 ,编写一个函数来查找字符串数组中的最长公共前缀,返回这个公共前缀。输入输出描述:输入:"abca","abc","abca","abc","abcc"输出:abc*/public static void main(String[] args) {Scanner sc=new Scanner(System.in);//从键盘中输入字符串数组(以”,“分割)/*  String str=sc.nextLine();String[] s=str.split(",");*/String[] s=sc.nextLine().split(",");System.out.println( longest(s));}private static String longest(String[] s) {if(s.length<=0||s==null) return "";int len=s[0].length();int count=s.length;StringBuffer sb=new StringBuffer();for(int i=0;i<len;i++){for(int j=0;j<count;j++){if(i==s[j].length()||s[0].charAt(i)!=s[j].charAt(i)){return  sb.toString();}}sb.append(s[0].charAt(i));}return sb.toString();}

题目二:合并区间

 题目描述:

给出一组区间,请合并所有重叠的区间。请保证合并后的区间按区间起点升序排列

 输入输出描述:
  输入:[[10,30],[20,60],[80,100],[150,180]]
  输出:[[10,60],[80,100],[150,180]]

解题思路:

step 1:既然要求重叠后的区间按照起点位置升序排列,我们就将所有区间按照起点位置先进行排序。使用优先级队列进行排序重载比较方式为比较interval结构的start变量

step 2:排序后的第一个区间一定是起点值最小的区间,我们将其计入返回数组res,然后遍历后续区间。

step 3:后续遍历过程中,如果遇到起点值小于res中最后一个区间的末尾值的情况,那一定是重叠,取二者最大末尾值更新res中最后一个区间即可。

step 4:如果遇到起点值大于res中最后一个区间的末尾值的情况,那一定没有重叠,后续也不会有这个末尾的重叠区间了,因为后面的起点只会更大,因此可以将它加入res。

作答情况(部分答案错误):

写成了这是困扰我的一个关键因素,下一组要是需要和上一组合并的话,在while循环中,就不能进行二次弹出。

②没有重新toString()方法,导致结果显示成了一个引用类型的地址。

③在给Intervals里添加元素时,没有通过(new +类名)来实例化对象,正确的写法是

代码:

 public static class Interval{int start;int end;public Interval(int start,int end){this.start=start;this.end=end;}
}
public static  ArrayList<Interval> merge(ArrayList<Interval> Intervals){PriorityQueue<Interval> queue=new PriorityQueue<>((o1,o2)->(o1.start-o2.start));for(int i=0;i<Intervals.size();i++){queue.add(Intervals.get(i));}ArrayList<Interval> res=new ArrayList<>();while (!queue.isEmpty()){Interval temp=queue.poll();while(!queue.isEmpty()&&temp.end>queue.peek().start){temp.end=Math.max(temp.end,queue.poll().end);}res.add(temp);}return  res;
}public static void main(String[] args) {ArrayList<Interval> Intervals=new ArrayList<>();Intervals.add(new Interval(10,30));Intervals.add(new Interval(20,60));Intervals.add(new Interval(80,100));Intervals.add(new Interval(150,180));ArrayList<Interval> result=merge(Intervals);System.out.print(result);}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MyBatis 源码分析 - SQL 的执行过程

MyBatis 源码分析 - SQL 的执行过程 * 本文速览 本篇文章较为详细的介绍了 MyBatis 执行 SQL 的过程。该过程本身比较复杂&#xff0c;牵涉到的技术点比较多。包括但不限于 Mapper 接口代理类的生成、接口方法的解析、SQL 语句的解析、运行时参数的绑定、查询结果自动映射、延…

C++ 秋招必知必会(数据结构与算法:下)

20. 二叉树的定义与操作 二叉树&#xff08;binary tree&#xff09;是一种非线性数据结构&#xff0c;代表着祖先与后代之间的派生关系&#xff0c;体现着“一分为二”的分治逻辑 与链表类似&#xff0c;二叉树的基本单元是节点&#xff0c;每个节点包含&#xff1a;值、左子…

MYSQL5.7详细安装步骤

MYSQL5.7详细安装步骤&#xff1a; 0、更换yum源 1、打开 mirrors.aliyun.com&#xff0c;选择centos的系统&#xff0c;点击帮助 2、执行命令&#xff1a;yum install wget -y 3、改变某些文件的名称 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base…

储能的全生命周期成本即平准化度电成本的计算方法及python实践

1. 平准化度电成本&#xff08;LCOE&#xff09;是一种衡量电力项目经济性的指标 LCOE&#xff08;Levelized Cost of Energy,&#xff09;的概念最早由美国国家可再生能源实验室&#xff08;NREL&#xff09;在1995年提出&#xff0c;它是通过将一个项目生命周期内的所有成本…

黑马头条项目结构

微服务架构具有许多优点&#xff0c;其中一些主要优点包括&#xff1a; 松耦合性&#xff1a;每个微服务都是独立的&#xff0c;可以独立部署、独立扩展和独立更新&#xff0c;这种松耦合性使得系统更加灵活&#xff0c;易于维护和演化。 技术多样性&#xff1a;由于每个微服务…

基于springboot实现知识管理系统项目【项目源码+论文说明】

基于springboot实现知识管理系统演示 摘要 随着信息互联网信息的飞速发展&#xff0c;无纸化作业变成了一种趋势&#xff0c;针对这个问题开发一个专门适应师生作业交流形式的网站。本文介绍了知识管理系统的开发全过程。通过分析企业对于知识管理系统的需求&#xff0c;创建了…

2024年4月13日美团春招实习试题【第四题:乘积因子数】-题目+题解+在线评测【二分】

2024年4月13日美团春招实习试题【第四题:乘积因子数】-题目题解在线评测【二分】 题目描述&#xff1a;输入描述输出描述样例 解题思路一&#xff1a;python解题思路二&#xff1a;c解题思路三&#xff1a;0 题目描述&#xff1a; 塔子哥拿到了一个数组&#xff0c;她有q次查询…

HTTP/1.1特性总结

优点 【简单&#xff0c;灵活和易于扩展&#xff0c;应用广泛和跨平台】 1.简单&#xff1a; http基本的报文格式就是headerbody&#xff0c;头部信息也是key-value简单的文本形式&#xff0c;易于理解&#xff0c;降低了学习和使用的门槛 2.灵活和易于扩展&#xff1a; &…

Redis 配置与使用 (Linux 虚拟机Windows客户端)

Centos7 安装Redis详细教程 - JcongJason - 博客园 (cnblogs.com) 安装 下载redis安装包并解压 # 下载&#xff0c;我是在root下执行的下载&#xff0c;所以我的下载目录为&#xff1a;/root/redis-5.0.5&#xff0c;这里按照自己的实际情况调整 wget https://download.redi…

Methoxy PEG Glutaric Acid可以改善物质的溶解性、稳定性和生物相容性

【试剂详情】 英文名称 mPEG-GA&#xff0c;mPEG-Glutaric Acid&#xff0c; Methoxy PEG GA&#xff0c; Methoxy PEG Glutaric Acid 中文名称 聚乙二醇单甲醚戊二酸&#xff0c; 甲氧基-聚乙二醇-戊二酸 外观性状 由分子量决定&#xff0c;固体或液体 分子量 400&…

浅谈Java的synchronized 锁以及synchronized 的锁升级

在Java中&#xff0c;synchronized关键字用于实现线程间的同步&#xff0c;确保同一时刻只有一个线程能够访问被同步的代码块或方法。当一个线程获得synchronized锁定后&#xff0c;其他试图访问同一锁的线程将被阻塞&#xff0c;直到锁被释放。 synchronized锁有两种基本形式…

为什么说六西格玛培训公司是企业问题的“终结者”

随着六西格玛管理方法的走红&#xff0c;六西格玛培训公司应运而生&#xff0c;致力于帮助企业解决各种核心问题&#xff0c;实现业绩的飞跃。那么&#xff0c;六西格玛培训公司究竟能为企业解决哪些问题&#xff1f;又为什么说六西格玛培训公司是企业问题的“终结者”呢&#…

第47期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区&#xff0c;集成了生成预训练Transformer&#xff08;GPT&#xff09;、人工智能生成内容&#xff08;AIGC&#xff09;以及大语言模型&#xff08;LLM&#xff09;等安全领域应用的知识。在这里&#xff0c;您可以找…

【第3期】PMC对话标杆用户:兆原数通在SeaTunnel的应用实践

&#x1f4e3;随着技术快速发展&#xff0c;企业对数据系统的现代化改造需求日益增加。在这种背景下&#xff0c;如何在保持业务连续性的同时&#xff0c;实现数据系统的平滑迁移与升级呢&#xff1f;加入我们的本期技术访谈节目&#xff0c;来听听李洪军老师分享他们如何利用S…

算法题解记录11+++从前序与中序遍历序列构造二叉树(百日筑基)

题目描述&#xff1a; 给定两个整数数组 preorder 和 inorder &#xff0c;其中 preorder 是二叉树的先序遍历&#xff0c; inorder 是同一棵树的中序遍历&#xff0c;请构造二叉树并返回其根节点。 示例 1: 输入: preorder [3,9,20,15,7], inorder [9,3,15,20,7] 输出: [3,…

树莓派驱动开发--iic篇(JY901S陀螺仪的三轴角度简单读取)

前言&#xff1a;既然大家都到了这步&#xff0c;想必对驱动开发有着一定的理解啦吧&#xff01;&#xff01;那我在前面说一下流程&#xff1a; 修改编译设备树》》》编写编译驱动文件》》》编写编译app文件》》》ftp挂载将前面3复制到树莓派的对应位置》》》加载驱动模块》》…

2024软件测试自动化框架都有哪些?

软件行业正迈向自主、快速、高效的未来。为了跟上这个高速前进的生态系统的步伐&#xff0c;必须加快应用程序的交付时间&#xff0c;但不能以牺牲质量为代价。快速实现质量是必要的&#xff0c;因此质量保证得到了很多关注。为了满足卓越的质量和更快的上市时间的需求&#xf…

策略者模式(代码实践C++/Java/Python)————设计模式学习笔记

文章目录 1 设计目标2 Java2.1 涉及知识点2.2 实现2.2.1 实现两个接口飞行为和叫行为2.2.2 实现Duck抽象基类&#xff08;把行为接口作为类成员&#xff09;2.2.3 实现接口飞行为和叫行为的具体行为2.2.4 具体实现鸭子2.2.5 模型调用 3 C&#xff08;用到了大量C2.0的知识&…

数据库SQL语言实战(三)

删除操作 本篇文章重点在于SQL中的各种删除操作 题目一 删除表中的学号不全是数字的那些错误数据&#xff0c;学号应该是数字组成&#xff0c;不能够包含字母空格等非数字字符。方法之一&#xff1a;用substr函数&#xff0c;例如Substr(sid,1,1)返回学号的第一位&#xff0…

C++常考面试题(第二篇)

【题目 16】拷贝构造函数的格式和作用&#xff0c;自动调用拷贝构造函数的几种情形&#xff1f; 格式&#xff1a;没有返回值 函数名和类名相同 参数&#xff1a;const person& 类型引用 作用&#xff1a;逐个给成员变量进行赋值三种情形下会调用拷贝构造函数 (1) 当用一…