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


    //我的方法
    	public String longestCommonPrefix(String[] strs) {
    		//如果字符串数组长度是0,则返回“”,如果数组长度是1,那么直接返回这一条String
            if(strs.length==0){
                return "";
            }else if(strs.length==1){
                return strs[0];
            }
            String s = "";
            //比较strs[0]的从第0位开始,每次取出一个字符比较,若数组中所有这个位的字符都相等,则加入公共字符串s,进行下个循环
            for(int i=0; i<strs[0].length(); i++){
                for(int j=1; j<strs.length; j++){
                	//如果遍历指针到达某个元素元素末尾或者某个元素该位匹配不想等,则返回s
                    if((i>=strs[j].length()) || (strs[0].charAt(i) != strs[j].charAt(i)))
                        return s;
                }
                s = s+strs[0].charAt(i);
            }
            return s;
        }
    	
    	//leetcode的方法
    	public String longestCommonPrefix1(String[] strs) {
    	    if(strs == null || strs.length == 0)    return "";
    	    String pre = strs[0];
    	    int i = 1;
    	    while(i < strs.length){
    	    	//拿第一个做模板,匹配到数组中第一个元素的最长公共前缀字符串,然后以这个为模板,以此类推匹配下边所有的元素,最后返回最终模板
    	    	//indexOf是检测子串并返回子串起始位置的函数
    	        while(strs[i].indexOf(pre) != 0)
    	        	//如果pre不是子串,就去掉pre末尾一位重新比较,直到是子串或者pre长度0时就会跳出本次循环去匹配下一轮外循环
    	            pre = pre.substring(0,pre.length()-1);
    	        i++;
    	    }
    	    return pre;
    	}
    

      

  • 相关阅读:
    消息队列简介
    docker快速构建oracle数据库
    MySQL读写分离之amoeba
    Python替换文件内容
    Nginx图片及样式文件不记录访问日志
    shell方式切割tomcat日志
    split命令
    orange安装文档
    openresty安装文档
    MySQL中kill所有慢查询进程和锁表进程
  • 原文地址:https://www.cnblogs.com/K-artorias/p/7880631.html
Copyright © 2020-2023  润新知