博客
关于我
14. 最长公共前缀
阅读量:142 次
发布时间:2019-02-28

本文共 1054 字,大约阅读时间需要 3 分钟。

查找字符串数组的最长公共前缀

问题描述

编写一个函数,用于查找字符串数组中的最长公共前缀。如果不存在公共前缀,则返回空字符串 ""。

示例

示例1:输入:["flower","flow","flight"]输出:"fl"

示例2:输入:["dog","racecar","car"]输出:""

代码思路

纵向比较法

  • 选取标兵字符串:将 strs[0] 作为标兵字符串,作为参照。
  • 遍历每个字符位置:依次比较每个字符位置的字符。
  • 字符比较
    • 如果某个字符串在当前位置的字符与标兵字符串不同,则终止匹配。
    • 最长公共前缀为标兵字符串的前 i 个字符。
  • 字符串长度判断:如果某个字符串的长度小于标兵字符串的长度,终止匹配。
    • 最长公共前缀为标兵字符串的前 i 个字符。
  • 代码实现

    public class Solution {    public String longestCommonPrefix(String[] strs) {        if (strs == null || strs.length == 0) {            return "";        }        int len = strs[0].length();        for (int i = 0; i < len; i++) {            for (int j = 1; j < strs.length; j++) {                if (i >= strs[j].length() || strs[0].charAt(i) != strs[j].charAt(i)) {                    return strs[0].substring(0, i);                }            }        }        return strs[0];    }}

    代码解释

  • 输入校验:首先检查输入是否为 null 或空数组,若是则返回空字符串。
  • 初始设置:获取标兵字符串的长度 len
  • 遍历每个字符位置:从 i=0 开始遍历到 len-1
  • 逐个字符串比较:从第二个字符串开始,逐个比较当前字符。
  • 字符不一致:若当前字符与标兵字符串的字符不一致,返回当前前缀部分。
  • 字符串长度不足:若当前字符串长度不足,返回当前前缀部分。
  • 全部匹配:若全部字符均匹配,返回标兵字符串本身。
  • 通过以上步骤,可以高效地找到字符串数组的最长公共前缀。

    转载地址:http://kofc.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现all combinations所有组合算法(附完整源码)
    查看>>
    Objective-C实现all permutations所有排列算法(附完整源码)
    查看>>
    Objective-C实现all subsequences所有子序列算法(附完整源码)
    查看>>
    Objective-C实现AlphaNumericalSort字母数字排序算法(附完整源码)
    查看>>
    Objective-C实现alternate disjoint set不相交集算法(附完整源码)
    查看>>
    Objective-C实现alternative list arrange备选列表排列算法(附完整源码)
    查看>>
    Objective-C实现An Armstrong number阿姆斯特朗数算法(附完整源码)
    查看>>
    Objective-C实现anagrams字谜算法(附完整源码)
    查看>>
    Objective-C实现ApproximationMonteCarlo蒙特卡洛方法计算pi值算法 (附完整源码)
    查看>>
    Objective-C实现area under curve曲线下面积算法(附完整源码)
    查看>>
    Objective-C实现arithmetic算术算法(附完整源码)
    查看>>
    Objective-C实现armstrong numbers阿姆斯壮数算法(附完整源码)
    查看>>
    Objective-C实现articulation-points(关键点)(割点)算法(附完整源码)
    查看>>
    Objective-C实现atoi函数功能(附完整源码)
    查看>>
    Objective-C实现average absolute deviation平均绝对偏差算法(附完整源码)
    查看>>
    Objective-C实现average mean平均数算法(附完整源码)
    查看>>
    Objective-C实现average median平均中位数算法(附完整源码)
    查看>>
    Objective-C实现average mode平均模式算法(附完整源码)
    查看>>
    Objective-C实现avl 树算法(附完整源码)
    查看>>
    Objective-C实现AvlTree树算法(附完整源码)
    查看>>