• 最长公共前缀


    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 
           
        
    };
  • 相关阅读:
    组件定义
    序列化代码
    Views 代码 导包
    DRF 初始化
    Urls 代码
    怎么用sublime text 3搭建python 的ide
    C语言位运算
    ZOJ 1104 Leaps Tall Buildings
    UVa 10739 String to Palindrome
    ZOJ 3563 Alice's Sequence II
  • 原文地址:https://www.cnblogs.com/jjq-exchange/p/11002487.html
Copyright © 2020-2023  润新知