LeetCode 14 最长公共前缀 - 纵向扫描

LeetCode 14 最长公共前缀,以第一个串为基准,逐位跟其他串比对。


🟢 最长公共前缀

找字符串数组的最长公共前缀。["flower","flow","flight"] → "fl"


以第一个字符串为模板,逐位扫描。当某一位上的字符不是所有串都有、或者某串的这一位跟它不一样,前缀就到此为止。

java 复制代码
public String longestCommonPrefix(String[] strs) {
    for (int col = 0; col < strs[0].length(); col++) {
        char c = strs[0].charAt(col);
        for (int row = 1; row < strs.length; row++) {
            if (col >= strs[row].length() || strs[row].charAt(col) != c)
                return strs[0].substring(0, col);  // 前缀到此为止
        }
    }
    return strs[0];  // 第一个串全匹配
}

注意先判断 col >= strs[row].length() 再取 charAt------如果有一个字符串已经到头了,直接返回当前前缀。先判越界再判不等,顺序反了会抛异常。

这题没算法难度,但考察基本的字符串操作习惯。用 substring 返回结果比用 StringBuilder 拼接简洁。


这题有人用 A 有人用 B,你习惯哪种写法?评论区贴一下你的解法,以后复盘直接看自己的版本。

相关推荐
木井巳27 分钟前
【BFS/DFS 解决 FloodFill 算法】太平洋大西洋水流问题
java·算法·leetcode·深度优先·广度优先·宽度优先·推荐算法
开心大爆炸31 分钟前
xrdp 连接 登录对话框输入密码后闪退
linux·运维·服务器
oushaojun21 小时前
大厂 C++ 面试:深度剖析 Linux Signal 信号机制(转)
linux
Navigator_Z1 小时前
LeetCode //C - 1224. Maximum Equal Frequency
c语言·算法·leetcode
苏生Susheng2 小时前
【软件实施】Linux系统Shell脚本教程
linux·运维·服务器·chrome·spring boot·学习·实施
曹牧2 小时前
C#:文本文件读取
服务器·前端·c#
Ruiery2 小时前
Linux 6.6内核 IOMMU 深度解析(七):DMA API 与 IOMMU 集成 — 从 dma_map_single 到 iommu_map
linux·运维·服务器
Navigator_Z2 小时前
LeetCode //C++ - 1226. The Dining Philosophers
c语言·算法·leetcode
分支预测失败2 小时前
RISC-V AIA 中断架构实战:从 PLIC 到 APLIC 与 IMSIC 的迁移
linux·后端
GeW2 小时前
RHCE学习拿证计划:锁定核心考点,实现备考效率最大化
linux