【刷题记录】14.最长公共前缀

简介: 【刷题记录】14.最长公共前缀

一、题目描述


来源:力扣(LeetCode)


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


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




示例 1:


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

输出:"fl"


示例 2:


输入:strs = ["dog","racecar","car"]

输出:""

解释:输入不存在公共前缀。


提示:


  • 1 <= strs.length <= 200
  • 0 <= strs[i].length <= 200
  • strs[i] 仅由小写英文字母组成


二、思路分析


  • 当字符串数组长度为 0 时则公共前缀为空,直接返回
  • 将最长公共前缀 resStr 初始化为 数组中第一个字符串
  • 遍历后面的字符串,依次将其与 resStr 进行比较,找出两个字符串公共前缀,并更新resStr
  • 最终的 resStr 即为我们要的最长公共前缀
  • 如果遍历过程中 resStr 为 null 了,则代表不可能存在最长公共前缀了,直接返回


三、代码实现

class Solution {
    public String longestCommonPrefix(String[] strs) {
if (strs.length ==0) return "";
        String resStr = strs[0];
for (int i =0 ; i < strs.length;i++){
            int j =0;
for (; j <resStr.length() && j < strs[i].length();j++){
if (resStr.charAt(j) != strs[i].charAt(j)){
                    break;
                }
            }
            resStr = resStr.substring(0,j);
        }
        return resStr;
    }
}


复杂度分析


时间复杂度:

网络异常,图片无法展示
|
,其中 m 是字符串数组中的字符串的平均长度, n 是字符串的数量。最坏情况下,字符串数组中的每个字符串的每个字符都会被比较一次


空间复杂度:

网络异常,图片无法展示
|


运行结果


网络异常,图片无法展示
|


总结


这道题目比较简单,就是一个模拟遍历的题目。继续加油~

目录
相关文章
|
NoSQL 安全 关系型数据库
阿里云数据库ApsaraDB| 学习笔记
快速学习阿里云数据库ApsaraDB
|
移动开发 API UED
【专栏:HTML进阶篇】HTML5拖放API与触摸事件
【4月更文挑战第30天】HTML5的拖放API和触摸事件增强了网页交互设计,使开发者能创建动态响应式界面。拖放API通过设定元素的`draggable`属性、监听拖动和放置事件以及处理`DataTransfer`对象实现。触摸事件如`touchstart`、`touchmove`、`touchend`则让触控设备操作更流畅。开发者需注意事件对象、多点触控处理和防止默认行为。结合两者,可创建图片排序、手势识别等交互功能,但也需面对浏览器兼容性和复杂逻辑挑战。利用HTML5这些工具,能提升用户体验,推动网页交互设计创新。
257 0
|
消息中间件 canal 缓存
彻底搞懂Redis和Mysql如何保证数据一致性
彻底搞懂Redis和Mysql如何保证数据一致性
彻底搞懂Redis和Mysql如何保证数据一致性
|
JavaScript Dubbo Java
这份日志格式规范,拿走不谢(Java版)
这份日志格式规范,拿走不谢(Java版)
|
搜索推荐 算法
选择排序(二)——堆排序(性能)与直接选择排序
选择排序(二)——堆排序(性能)与直接选择排序
110 1
|
JSON Rust JavaScript
Deno 下一代JavaScript运行时
Deno 下一代JavaScript运行时
【C刷题】day2
【C刷题】day2
109 0
|
设计模式 缓存 监控
【Java设计模式 设计模式与范式】结构型模式小结
【Java设计模式 设计模式与范式】结构型模式小结
164 0
|
数据采集 存储 供应链
低代码学堂-day 1|学习笔记
快速学习低代码学堂-day 1
低代码学堂-day 1|学习笔记
|
前端开发
纯CSS3不规则瀑布流布局特效
纯CSS3不规则瀑布流布局特效
294 0
纯CSS3不规则瀑布流布局特效