首页 > 其他分享 >力扣-最长公共前缀

力扣-最长公共前缀

时间:2023-08-11 17:04:09浏览次数:40  
标签:return 前缀 strs resu 力扣 字符串 最长 String

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

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

 

示例 1:

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

示例 2:

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

 

提示:

  • 1 <= strs.length <= 200
  • 0 <= strs[i].length <= 200
  • strs[i] 仅由小写英文字母组成
public String longestCommonPrefix(String[] strs) {
    // 如果数组长度为0,则返回空字符串
    if (strs.length == 0) return "";

    // 将第一个字符串作为初始结果
    String resu = strs[0];

    // 遍历数组中的每个字符串
    for(String ups : strs){
        // 当前字符串不以结果字符串开头时,循环删除结果字符串的最后一个字符
        while (!ups.startsWith(resu)){
            // 如果结果字符串已经为空,则没有公共前缀,直接返回空字符串
            if(resu.length()==0) return "";
            //包含起始索引字符不包含结束索引的字符
            resu=resu.substring(0,resu.length()-1);
        }
    }

    // 返回最终的结果字符串
    return resu;
}

标签:return,前缀,strs,resu,力扣,字符串,最长,String
From: https://blog.51cto.com/u_16199760/7049484

相关文章

  • 《剑指Offer》-48-最长不含重复字符串的子字符串
    这题以前做过,和力扣-3重复 intlengthOfLongestSubstring(strings){ //本来应该是用map,但是其实可以使用数组替代,下标对应了字母 unordered_map<char,int>map; intlen=s.size(),maxLen=0;//初始化为0是因为可能字符串长度为0 vector<int>dp(len+1,0);//多......
  • 7670: 大门 差分/前缀和
    描述 杨酋长家里有矿。杨酋长有n个矿洞,m把钥匙。第i个矿洞的大门可以被第Li,Li+1,...,Ri把钥匙打开。杨酋长想知道,有多少把钥匙可以打开至少k扇门。  输入 第一行三个整数n,m,k,表示矿洞个数,钥匙的数量和钥匙至少能打开的门的数量。接下来n行,每行两个整数Li,Ri,......
  • 最长公共子序列
    最长公共子序列一、什么是最长公共子序列(LongestCommonSubsequence,LCS)?最长公共子序列(LCS)是指在两个序列中,找出一个最长的子序列,使得这个子序列在这两个序列中都出现过。换句话说,就是从两个序列中删除一些元素后,剩下的最长公共子序列的长度。二、原理我们可以使用动态......
  • 力扣---1289. 下降路径最小和 II
    给你一个 nxn 整数矩阵 grid ,请你返回 非零偏移下降路径 数字和的最小值。非零偏移下降路径 定义为:从 grid 数组中的每一行选择一个数字,且按顺序选出来的数字中,相邻数字不在原数组的同一列。 示例1:输入:grid=[[1,2,3],[4,5,6],[7,8,9]]输出:13解释:所有非零偏......
  • 代码随想录算法训练营第十天|力扣232.用栈实现队列、力扣225.用队列实现栈
    栈与队列理论知识栈提供push和pop等等接口,所有元素必须符合先进后出规则,所以栈不提供走访功能,也不提供迭代器(iterator)。不像是set或者map提供迭代器iterator来遍历所有元素。栈是以底层容器完成其所有的工作,对外提供统一的接口,底层容器是可插拔的(也就是说我们可以控制......
  • (未完全掌握)代码随想录算法训练营第八、九天|KMP算法;力扣28.实现strStr(),力扣459.重
    KMP算法(没掌握)主要功能:字符串匹配理论:检测文本串中是否出现过模式串前缀就是包含首字母不包含尾字母的所有子串后缀就是包含尾字母不包含首字母的所有子串最长相等前后缀:对子串分别分析,从左向右前缀表是用来回退的,它记录了模式串与主串(文本串)不匹配的时候,模式串应该从......
  • 最长回文串
    给定一个包含大写字母和小写字母的字符串s,返回通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如"Aa"不能当做一个回文字符串。示例1:输入:s="abccccdd"输出:7解释:我们可以构造的最长的回文串是"dccaccd",它的长度是7。示例2:输入:s......
  • #yyds干货盘点# LeetCode程序员面试金典:实现 Trie (前缀树)
    题目:发音类似"try")或者说前缀树是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。请你实现Trie类:Trie()初始化前缀树对象。voidinsert(Stringword)向前缀树中插入字符串word。booleansearch(String......
  • 力扣-划分为k个相等的子集
    1.问题描述给定一个整数数组 nums和一个正整数k,找出是否有可能把这个数组分成k个非空子集,其总和都相等。示例1:输入:nums=[4,3,2,3,5,2,1],k=4输出:True2.说明有可能将其分成4个子集(5),(1,4),(2,3),(2,3)等于总和。输入说明:首先输入nums数组的长度n,然后输入n个......
  • 力扣-有效的井字游戏
    1.问题描述用字符串数组作为井字游戏的游戏板board。当且仅当在井字游戏过程中,玩家有可能将字符放置成游戏板所显示的状态时,才返回true。该游戏板是一个3x3数组,由字符"","X"和"O"组成。字符""代表一个空位。以下是井字游戏的规则:玩家轮流将字符放入空位("")中。......