• Longest Common Prefix


    Write a function to find the longest common prefix string amongst an array of strings.

    找出所有字符串中的共同字符串前缀。

    方法一:让第一个字符串作为基准,遍历该字符串,依次将该字符串中的每个字符跟其他所有字符串相应字符比较,只要有一个不一样,就停止。

    其实正确的基准应该是选择字符串长度最小的,这里没有选择,就会出现下标越界,可以用try-catch处理,只要出现越界异常,该字符就不会相等

    public  String longestCommonPrefix(String[] strs) {
                if(strs==null||strs.length==0)
                    return "";
                if(strs.length==1)
                    return strs[0];
                int i;
                //遍历基准字符串中的每个字符,并去所有 其他字符串比对该位置上是不是此字符,如果是,则比较下一个字符,不是则跳出循环
                for(i=0;i<strs[0].length();i++){
                   if(!comm(strs,i,strs[0].charAt(i))){
                       break;
                   }
                }
                if(i>0){
                return strs[0].substring(0, i);
                }else
                    return "";
            }
            //比较所有字符串的第k个位置上的字符是不是c,只要有一个不是,或者下标越界异常,就返回false,表示该字符不满足。
            public   boolean comm(String[] strs,int k,char c){
                
                for(int i=1;i<strs.length;i++){
                    try{
                        if(strs[i].charAt(k)!=c)
                            return false;
                    }catch(IndexOutOfBoundsException e){
                        return false;
                    }
                }
                return true;
            }

    还有大神提出,先排序在比较第一个和最后一个字符串

    public  String longestCommonPrefix(String[] strs) {
            if(strs==null||strs.length==0) return "";
            if(strs.length==1) return strs[0];
            
            Arrays.sort(strs);
            
            char[] first=strs[0].toCharArray();
            char[] last=strs[strs.length-1].toCharArray();
            int i,j;
            for( i=0,j=0;i<first.length&&j<last.length;i++,j++){
                if(first[i]!=last[j]) break;
            }
            return strs[0].substring(0,i);
            
        }
  • 相关阅读:
    网站性能在线评估
    如何测试电梯/伞/桌子/笔?
    apk反编译查看源码
    Jmeter(四)-断言/检查点
    【转】Jmeter(三)-简单的HTTP请求(非录制)
    【转】Jmeter(二)-使用代理录制脚本
    [转]Jmeter(一)-精简测试脚本
    CentOS 安装以及配置Apache php mysql
    centOS静态ip设置
    免费DDOS攻击测试工具大合集
  • 原文地址:https://www.cnblogs.com/xiaolovewei/p/8059128.html
Copyright © 2020-2023  润新知