力扣经典题目之14. 最长公共前缀

今天继续给大家分享一道力扣的做题心得今天这道题目是14. 最长公共前缀 - 力扣(LeetCode)

题目如下


1,题目分析

题目给出了一个字符串数组,我们需要找出这个数组中所有字符串元素的最长的公共前缀字符,公共前缀和即为这个字符串数组中所有字符串元素从前往后都有的最长的子串,例子如上面题目介绍所示,题目不难我们现在立刻开始解题,下面首先给出题解代码

2,解题思路

java 复制代码
class Solution {
    public String longestCommonPrefix(String[] strs) {
        if (strs == null || strs.length == 0) return "";
        
        String max = ""; // 显式初始化
        // 以第一个字符串为基准
        for (int y = 0; y < strs[0].length(); y++) {
            char currentChar = strs[0].charAt(y);
            // 遍历其他字符串的相同位置字符
            for (int x = 1; x < strs.length; x++) {
                // 如果其他字符串长度不足或字符不匹配,直接返回当前结果
                if (y >= strs[x].length() || strs[x].charAt(y) != currentChar) {
                    return max;
                }
            }
            max += currentChar; // 所有字符串该位置字符相同,加入结果
        }
        return max;
    }
}

我们以逐个遍历数组,以第一个字符串为基准开始,获取从头开始的每一个字符,然后通过遍历判断当前获取的这个字符是否每一个字符串都有,如果有字符串没有此字符则就可以直接返回结果了

4,总结

感谢大家的阅读,希望这篇解题心得能为大家带来一些收获,我们共同进步!大家的点赞就是我的动力谢谢大家,还有什么更优解或者问题欢迎大家在评论区讨论分享!

相关推荐
yzx9910131 小时前
支持向量机的回归用法详解
算法·支持向量机·回归
小羊在奋斗2 小时前
【LeetCode 热题 100】反转链表 / 回文链表 / 有序链表转换二叉搜索树 / LRU 缓存
算法·leetcode·链表
爱上彩虹c2 小时前
LeetCode Hot100 (1/100)
算法·leetcode·职场和发展
小陈的进阶之路2 小时前
计算机大类专业数据结构下半期实验练习题
数据结构·算法·深度优先
瑞雪兆丰年兮2 小时前
数学实验(Matlab符号运算)
开发语言·算法·matlab·数学实验
不会计算机的捞地2 小时前
【数据结构入门训练DAY-30】数的划分
数据结构·算法·深度优先
The_cute_cat3 小时前
试除法判断素数优化【C语言】
算法
Darkwanderor3 小时前
一般枚举题目合集
c++·算法
@我漫长的孤独流浪4 小时前
最短路与拓扑(2)
数据结构·c++·算法