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];
        }
    }
    
  • 相关阅读:
    Python生成器
    字符串匹配——KMP算法
    字符串匹配——Brute-Force 简单匹配算法
    算法笔记--八个常见排序算法总结
    算法笔记--基数排序
    算法笔记--归并排序
    算法笔记--堆排序
    算法笔记--直接选择排序
    算法笔记--快速排序
    算法笔记--冒泡排序
  • 原文地址:https://www.cnblogs.com/crazyBlogs/p/13153125.html
Copyright © 2011-2022 走看看