zoukankan      html  css  js  c++  java
  • PHP算法之最长公共前缀

    ### 解题思路
    方法太笨重后期优化
    循环比较
    循环长度利用max(最长字符串的循环)
    不满住条件的截取

    ### 代码
    ```php
    class Solution {

        /**
         * @param String[] $strs
         * @return String
         */
        function longestCommonPrefix($strs) {
            $count = count($strs);
            $val = [];
            $len = 0;
            for($i=0;$i<$count;$i++){
                $arr = str_split($strs[$i],1);
                $len = max($len,strlen($strs[$i]));
                if($i==0){
                    $val = $arr;
                }else{

                    for($a = 0;$a < $len ;$a++){

                        if($val[$a] != $arr[$a]){

                            if($a==0){
                                return "";
                            }else{
                                $val = array_slice($val,0,$a);
                            } 
                            
                        }

                    }

                }
            }  
            return str_replace(',','',implode(',',$val));   
        }
    }
    ``
     
    后期优化
     

    $prefix = '';
    $i = 0;
    if(count($strs)<1){
    return $prefix;
    }
    while(true){
    $current = $strs[0]{$i};
    if(!$current){
    return $prefix;
    }
    foreach($strs as $str){
    if($str{$i} != $current){
    return $prefix;
    }
    }
    $prefix .= $current;
    $i++;
    }
    return $prefix;

    作者:yytswcx

  • 相关阅读:
    threejs 通过bufferGeometry处理每一个点的位置和颜色
    nodejs通过buffer传递数据到前端,前端通过arraybuffer接收数据
    ubuntu 通过ssh上传/下载服务器文件
    前端通过浏览器导出文件并下载
    前端imageBuffer设置图片src(后端到前端直传buffer)
    一个FLAG #17# 测试STL
    一个FLAG #16# 优先队列
    一个FLAG #15# 团队队列
    一个FLAG #14# The SetStack Computer
    一个FLAG #13# V字型数列
  • 原文地址:https://www.cnblogs.com/corvus/p/12000732.html
Copyright © 2011-2022 走看看