温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

leetcode中如何解决最长公共前缀问题

发布时间:2022-01-17 11:49:29 来源:亿速云 阅读:185 作者:小新 栏目:大数据

这篇文章主要介绍leetcode中如何解决最长公共前缀问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

 

题目链接

https://leetcode-cn.com/problems/longest-common-prefix/

 

题目描述

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

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

示例 1:

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

示例 2:

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

说明:

所有输入只包含小写字母 a-z 。

 

解题方案

 

思路

  • 标签:字符串

  • 当字符串数组长度为0时则公共前缀为空,直接返回

  • 令最长公共前缀ans的值为第一个字符串,进行初始化

  • 遍历后面的字符串,依次将其与ans进行比较,两两找出公共前缀,最终结果即为最长公共前缀

  • 如果查找过程中出现了ans为空的情况,则公共前缀不存在直接返回

  • 时间复杂度:O(s),s为所有字符串的长度之和

 

代码

  • Java版本

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;            for(;j<ans.length() && j < strs[i].length();j++) {                if(ans.charAt(j) != strs[i].charAt(j))                    break;            }            ans = ans.substring(0, j);            if(ans.equals(""))                return ans;        }        return ans;    }}
 
  • JavaScript版本

/** * @param {string[]} strs * @return {string} */var longestCommonPrefix = function(strs) {    if(strs.length == 0)         return "";    let ans = strs[0];    for(let i =1;i<strs.length;i++) {        let j=0;        for(;j<ans.length && j < strs[i].length;j++) {            if(ans[j] != strs[i][j])                break;        }        ans = ans.substr(0, j);        if(ans === "")            return ans;    }    return ans;};
 
 

画解

leetcode中如何解决最长公共前缀问题leetcode中如何解决最长公共前缀问题leetcode中如何解决最长公共前缀问题

以上是“leetcode中如何解决最长公共前缀问题”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI