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];
        }
    }
    
  • 相关阅读:
    SpringBoot(三)——使用Thymeleaf模板
    “Usage of API documented as @since 1.8+”报错的解决办法
    JAVA的多态性
    SQL的JOIN语句
    共享锁和排他锁
    软件工程团队作业---项目选题报告
    结对作业
    PMS---团队展示
    第二次作业——个人项目实战
    第一次作业---准备
  • 原文地址:https://www.cnblogs.com/crazyBlogs/p/13153125.html
Copyright © 2011-2022 走看看