最长公共前缀

<?php
/**
 * 最长公共前缀
 *
 * User: hihone
 * Date: 2019/2/3
 * Time: 10:24
 * Description:
 * 如果不存在公共前缀,返回空字符串 ""。
 * 所有输入只包含小写字母 a-z 。
 */

/**
 * @param $array
 *
 * @return string
 */
function longestCommonPrefix($array)
{
    if (empty($array) || count($array) == 0) return '';
    $minLen = PHP_INT_MAX;
    #获取最短的数组
    foreach ($array as $arr) $minLen = min($minLen, strlen($arr));

    $i      = 0;
    $prefix = '';
    $s      = '';
    $res    = true;
    while ($i < $minLen) {
        $s .= $array[0][$i];

        foreach ($array as $arr) {
            $ss = substr($arr, 0, $i + 1);
            if ($s != $ss) {
                $res = false;
                break;
            }
        }
        $res && $prefix = $s;
        $i++;
    }

    return $prefix;
}

$arr = ["flower", "flow", "flight"];
echo longestCommonPrefix($arr);#fl
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1:...
    Buyun0阅读 3,638评论 0 0
  • 需求 编写一个函数来查找字符串数组中的最长公共前缀。 说明所有输入只包含小写字母 a-z 。如果不存在公共前缀,返...
    惑也阅读 1,495评论 0 1
  • 难易度:易题目:编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1...
    乐一游阅读 4,678评论 0 51
  • 题目描述 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 说明:所有输入...
    youthcity阅读 3,931评论 0 50
  • 示例1: 输入['flower','flow','flight'] 输出“fl” 示例2: 输入['flower'...
    地铁姑娘阅读 2,540评论 0 2