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,你习惯哪种写法?评论区贴一下你的解法,以后复盘直接看自己的版本。

相关推荐
瑞克-桑切斯4 小时前
7、MySQL 慢查询排查与优化实战指南
java·服务器·数据库
vibecode5 小时前
网站服务器失去响应怎么解决?我把连接超时和读超时这两段计时拆开跑了一遍
运维·服务器
迪康Defender7 小时前
终端供应链安全:应用白名单与软件正版化检测落地|终端安全治理实践
运维·服务器·网络·安全·web安全·自动化·运维开发
lzx_0027 小时前
Linux 进程(二) 深入理解进程
linux
沫璃染墨8 小时前
从零入门计算机网络系列(十二):HTTP长连接与会话管理详解——从Connection到Cookie与Session
linux·服务器·c++·tcp/ip·ubuntu·http·交互
温暖小土8 小时前
在 CentOS 上安装 Redis Stack
linux·redis·centos
GeW9 小时前
国产化替代进入深水区之后Linux 与数据库为什么必须走向重建
linux
衍玊10 小时前
深入剖析 TCP/IP 网络通信原理与内核实现
服务器·网络·tcp/ip
echoarts11 小时前
服务器连不上?FileZilla 改被动模式就好了
运维·服务器·其他
QXWZ_IA11 小时前
变电站数字孪生巡检的能力分层、数据接入与空间计算边界
运维·服务器·空间计算