首页 > 其他分享 >Leecode 最长公共前缀

Leecode 最长公共前缀

时间:2024-03-17 17:25:35浏览次数:22  
标签:String strs Leecode int length null 最长 前缀

Day 1 刷题

此题没有写出来,仅附上力扣官方代码:

class Solution {
    public String longestCommonPrefix(String[] strs) {
        if(strs == null||strs.length ==0){
            return "";
        }
        String prefix  = strs[0];
        int count = strs.length;
        for (int i=1;i<count;i++){
            // wrapper method! so good!
            prefix = CommonPrefix(prefix,strs[i]);
            if(prefix.length()==0){
                break;
              } 
        }
        return prefix;
    }

    public String CommonPrefix(String str1,String str2){
        int length = Math.min(str1.length(),str2.length());
        int index = 0;
        // not satisfying,will break?
        while(index<length&&str1.charAt(index)==str2.charAt(index)){
            index++;
        }
        return str1.substring(0,index);
    }
}

将多个字符串利用子方法CommonPrefix()可以便捷调用,以避免在main方法里反复使用for循环遍历。同时要注意,字符串为空,可能不指向任何对象或者空(null || string.length ==0)

标签:String,strs,Leecode,int,length,null,最长,前缀
From: https://www.cnblogs.com/xytang-mini-juan/p/18078800

相关文章

  • Leecode 将罗马数字转换为整型
    Day1刷题我的解题思路利用罗马数字与整型的转换规律,利用哈希表来生成键值对。classSolution{publicintromanToInt(Strings){intsum=0;HashMap<Character,Integer>RomanInt=newHashMap<Character,Integer>();RomanInt.put('I......
  • Leecode 求两数之和
    Day1刷题我的解题思路是按照第一个元素往后排,不重复的找相加的组合,判断是否为target值,时间复杂度较高,为\(\mathcal{O}(n^2)\)。classSolution{publicint[]twoSum(int[]nums,inttarget){intflag=1;while(flag==1){for(in......
  • 每日一练:LeeCode-125、验证回文串【字符串+双指针】
    如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个回文串。字母和数字都属于字母数字字符。给你一个字符串s,如果它是回文串,返回true;否则,返回false。示例1:输入:s="Aman,aplan,acana......
  • 23笔试真题:最长路径问题
    输入一个数字n表示层数,在输入数字来表示三角形,要求三角形求解从顶到低的最长路径。742160247524675从第一层的7出发,走到第五层,求出经过路径和最长的路径和。要求使用递归与递推两种方法,并且按照下面的输入与输出设计程序。从上一层向下一层走的时候......
  • 二维前缀和知识讲解+例题
    1.二维前缀和二维前缀和是一种数组处理技术,它在处理二维数据(如矩阵)时非常有用。它的概念源自于一维前缀和,但扩展到了两个维度。二维前缀和的主要思想是将矩阵中的每个元素与其上方和左方的元素进行累加,从而快速计算出矩阵中任意子矩阵的元素和。定义如下:设有一个二维矩阵......
  • 第五十七天| 647. 回文子串、5.最长回文子串、516.最长回文子序列
    Leetcode 647.回文子串题目链接:647回文子串题干:给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。回文字符串 是正着读和倒过来读一样的字符串。子字符串 是字符串中的由连续字符组成的一个序列。具有不同开始位置或结束位置的子串,即使是由相同的......
  • Leecode Day3
    初始想法也是用双指针,问题在于没有灵活运用与运算(实现求和后结果满足二进制表达形式),未设置加位!(add);多了索引位置i,只需要指针i和j。当前位为空。错误代码如下:学习画图小匠的代码:https://leetcode.cn/problems/add-binary/solutions/2652640/javapython3cwei-yun-suan-s......
  • Leetcode刷题-动态规划-最长回文子串
    链接:5.最长回文子串-力扣(LeetCode)给你一个字符串s,找到s中最长的回文子串,如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。示例1:输入:s="babad"输出:"bab"解释:"aba"同样是符合题意的答案。示例2:输入:s="cbbd"输出:"bb"提示:1<=s.length<=1000s......
  • 【力扣】最长公共子序列(动态规划)(还是得学套路才能会做)
    题目描述分析首先容易想出,dp数组的含义应该是两个字符串的最长公共子序列长度。当两个字符串中的任意一个长度为0时,对应的LCS为0由于同时受到两个数组的影响,所以dp数组应该设置为二维数组,并且有:dp[i][j]代表的是s1的0-i的子序列与s2的0-j的子序列的LCS然后分析递推公式:调......
  • 14. 最长公共前缀c
    char*longestCommonPrefix(char**strs,intstrsSize){intindex=1,min=INT_MAX;if(strsSize==1)returnstrs[0];while(index<strsSize){inti=0;while(strs[index-1][i]!=0&&strs[index][i]!=0&&strs[index-1][......