zoukankan      html  css  js  c++  java
  • 最长公共前缀

    1.题目

    2.我的解答

     方法一:

      思路:

        1.首先判断数组内是否有内容没有直接抛出

        2.设置一个变量存储要输出的的公共前缀

        3.这里我是将数组第一个变量进行提取出来做为对比基准(实际应该提取数组中最短的最佳)

        4.设置一个临时变量用于计算时候对比完一次,若没直接抛出

        5.循环对比数组

     

    /**
     * @param {string[]} strs
     * @return {string}
     */
    var longestCommonPrefix = function(strs) {
        
        if(strs.length<1) return "" ;
        
        let q = "";
        
        for(let i=0;i<strs[0].length;i++){
            
            let tag = 1
    
            for(let j=1;j<strs.length;j++){
                
                if(strs[0][i] === strs[j][i]){
                    tag++;
                }else{
                    return q;
                }
                
            }
            
            if(tag == strs.length) q += strs[0][i];
            
        }
        
        return q 
           
        
    };

     方法二:

      2019/6/12补

      这是对方法一的优化,在这里将舍弃一些不必要的判断和减少不必要的中间变量,以减少空间复杂度

    /**
     * @param {string[]} strs
     * @return {string}
     */
    var longestCommonPrefix = function(strs) {
        
        if(strs.length<1) return "" ;
        
        var q = "";
        
        for(let i=0;i<strs[0].length;i++){
            
            for(let j=1;j<strs.length;j++){
                
                if(strs[0][i] !== strs[j][i]){
                    return q;
                }
                
            }
            
            q += strs[0][i];
            
        }
        
        return q 
           
        
    };
  • 相关阅读:
    2020软件工程02
    自我介绍
    2019年春总结作业
    第十二周作业
    第十一周作业
    第十周作业
    第九周作业
    第八周作业
    第七周学习总结
    第六周学习总结
  • 原文地址:https://www.cnblogs.com/jjq-exchange/p/11002487.html
Copyright © 2011-2022 走看看