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

    编写一个函数来查找字符串数组中的最长公共前缀。

    如果不存在公共前缀,返回空字符串 ""

    示例 1:

    输入: ["flower","flow","flight"]
    输出: "fl"
    

    示例 2:

    输入: ["dog","racecar","car"]
    输出: ""
    解释: 输入不存在公共前缀。
    

    说明:

    所有输入只包含小写字母 a-z 。

    lass Solution {
        public String longestCommonPrefix(String[] strs) {
            
            int len = strs.length;
            
            //此时数组为空
            if(len == 0 ) 
                return "";
            
            //此时数组只有一个字符串
            if(len == 1) 
                return strs[0];
            
            //初始化 找出长度最小的字符串 作为比较目标
            int minIndex = 0;
            int minSize = strs[0].length();
            
            for(int i = 1; i < strs.length; i++) {
                if(minSize > strs[i].length()) {
                    minSize = strs[i].length();
                    minIndex = i;
                }
            }
            String temp="",temp1;
            int j ;
            for(int i = minSize; i >= 0; i--) {
                
                 temp = strs[minIndex].substring(0,i);
                
                //比较开始
                for( j = 0; j < strs.length; j++) {
                    temp1 = strs[j].substring(0,i);
                    
                    if(!temp1.equals(temp)) 
                        break;
                }
                
                if(j == strs.length) 
                    return temp;
            }
            
            return "";
        }
    }

    C++:

    class Solution {
    public:
        string longestCommonPrefix(vector<string>& strs) {
            if(strs.size() == 0)
                return "";
            if(strs.size() == 1) 
                return strs[0];
            
            int minSize = strs[0].length();
            
            int minIndex = 0;
            
            for(int i = 0; i < strs.size(); i++) {
                if(minSize > strs[i].length()) {
                    minSize = strs[i].length();
                    minIndex = i;
                }
            }
            
            int j;
            string str1 = "";
            
            //逐个比较
            for(int i = 0; i < minSize; i++ ) {
                
                for(j = 0; j < strs.size(); j++) 
                    if(strs[minIndex][i] != strs[j][i]) return str1;
                
                //表示该字符是公共的子串之一
                str1 += strs[minIndex][i];
            }
            
            return str1;
        }
    };
  • 相关阅读:
    java基础问题1
    基本数据类型,string类型的瞎扯,final喜欢干的事儿。final string
    关于区块链不懂的东西
    需求更新表属性
    用户体验——响应时间
    后台运行任务nohup xxxxxx &
    jenkins打包maven工程发现有些包下载不下来
    jenkins复选框插件Extended Choice Parameter plugin
    jmeter上传文件tips
    airflow 简介
  • 原文地址:https://www.cnblogs.com/jj81/p/9757544.html
Copyright © 2011-2022 走看看