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

    链接:

    https://leetcode-cn.com/problems/longest-common-prefix

    描述:

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

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

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

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

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

    题解:

    最直观的思路:同步扫描所有字符串的每一列,若发现超出字符串末端或出现不相同的字符就停止

    以第一个字符串为基准,遍历其中的字符:
     第 (i) 个字符为 (c)
     遍历其余字符串:
      若超出第 (j) 个字符串的长度,或者第 (j) 个字符串的第 (i) 个字符不是 (c) 时,返回结果

    C++

    展开后查看
    class Solution {
    public:
        string longestCommonPrefix(vector<string>& strs) {
            if(strs.size() == 0){
                return "";
            }
            for(int i = 0; i < strs[0].size(); i++){
                char c = strs[0][i];
                for(int j = 1; j < strs.size(); j++){
                    if(i == strs[j].size() || c != strs[j][i]){
                        return strs[0].substr(0, i);
                    }
                }
            }
            return strs[0];
        }
    };
    

    Java

    展开后查看
    class Solution {
        public String longestCommonPrefix(String[] strs) {
            if(strs == null || strs.length == 0){
                return "";
            }
            for(int i = 0; i < strs[0].length(); i++){
                char c = strs[0].charAt(i);
                for(int j = 1; j < strs.length; j++){
                    if(i == strs[j].length() || c != strs[j].charAt(i)){
                        return strs[0].substring(0, i);
                    }
                }
            }
            return strs[0];
        }
    }
    
  • 相关阅读:
    以CCF CSP认证为抓手,积极探索软件基础能力递进式培养体系
    HDU1878 欧拉回路
    HDU1878 欧拉回路
    Java---casting(对象转型)
    Java---package和import语句
    Java---方法的重写
    Java---继承中的构造方法
    Java---内存分析
    Java---多个类写在一个类文件中
    Java---SSH框架认识
  • 原文地址:https://www.cnblogs.com/crazyBlogs/p/13153125.html
Copyright © 2011-2022 走看看