14. Longest Common Prefix

这是一个关于LeetCode第14题的解析。函数旨在找到字符串数组中的最长公共前缀。例如,输入['flower', 'flow', 'flight'],输出为'fl'。若没有公共前缀,返回空字符串。代码分析中提到了一种解决方案,首先找出最短的字符串,然后逐字符比较,一旦发现不匹配,立即返回当前的公共前缀。" 118981595,772087,LG-Transformer:多尺度全局局部建模的新方法,"['计算机视觉', '深度学习', 'Transformer', '模型结构', '图像处理']
摘要由CSDN通过智能技术生成

14. Longest Common Prefix

题目

写一个函数来找到字符串数组中的最长公共前缀字符串。
如果没有公共前缀,返回一个空字符串 “”。
例1:
Input: [“flower”,”flow”,”flight”]
Output: “fl”

例2:
Input: [“dog”,”racecar”,”car”]
Output: “”
解释:在输入字符串数组中,没有公共前缀。
注:所有给出的输入都是小写字母a-z.

代码块

class Solution {
    public static String longestCommonPrefix(String[] strs) {
        if (strs.length == 0)
            return "";
        if (strs.length == 1)   
            return strs[0];

        String strMin = strs[0];
        for(int i = 0; i < strs.length; i++){

            strMin = (strs[i].length() >= strMin.length())? strMin : strs[i]; 
        }
        for(int i = 0; i < strMin.length() ; i++){
            for(int j = 0; j < strs.length; j++){
                if(strs[j].charAt(i) != strMin.charAt(i)){
                    return strMin.substring(0, i);
                }
            }
        }
        return strs[0].substring(0, strMin.length());

    }
}

代码分析

这个题看似很简单,我先理解的是就以第一个字符串为参考,然后后面的都跟它比较,写出来不是很理想。整理思路后,
应该找出数组中最短的字符串(strMin.lenggth)用i来控制位数,然后按列来进行比较(strs.length)(第j个字符串的第i位)。
如果不相等,就返回子字符串;
如果不进入循环,比如[“”,”c”],返回substring(0,0)为空。
注意i,j的含义即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值