最长公共前缀---简单

题目:

  编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""

示例:

示例 1:

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

示例 2:

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

思路:

  先找出最小长度的,然后每个字符串匹配。O(n)

class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
        int size=strs.size();
        if(size==0) return "";
        int min=strs[0].size();
        for(int i=0;i<size;i++)
            if(strs[i].size()<min) min=strs[i].size();
        if(min==0) return "";
        int j=0;
        for(;j<min;j++)
        {
            char temp=strs[0][j];
            for(auto &s:strs)
            {
                if(s[j]!=temp) return string(strs[0].begin(),strs[0].begin()+j);
            }
        }
        return string(strs[0].begin(),strs[0].begin()+j);
    }
};

原文地址:https://www.cnblogs.com/manch1n/p/10323957.html

时间: 2024-10-02 22:39:06

最长公共前缀---简单的相关文章

【简单算法】20.最长公共前缀

题目: 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow","flight"] 输出: "fl" 示例 2: 输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀. 说明: 所有输入只包含小写字

【leetcode 简单】第五题 最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow","flight"] 输出: "fl" 示例 2: 输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀. 说明: 所有输入只包含小写字母 a-

【leetcode算法-简单】14. 最长公共前缀

[题目描述] 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow","flight"]输出: "fl" 示例 2: 输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀.说明: 所有输入只包含小写字母

LeetCode刷题-最长公共前缀(简单)

题目描述 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow","flight"]输出: "fl" 示例 2: 输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀. 说明: 所有输入只包含小写字母 

leetcode——Longest Common Prefix 最长公共前缀(AC)

Write a function to find the longest common prefix string amongst an array of strings. 其实做起来会感觉很简单,需要注意的是要考虑效率的问题,毕竟可能是很长的字符串数组,所以可以考虑选取所有字符串中最短的那个来首先进行比较,因为最长公共子串肯定不会大于其长度,这样避免了字符串之间长度差异很大造成的效率损失,然后每次比较之后最长公共子串的长度也永远不会大于最短的那个字符串,只会不变或减小,只要遍历字符串数组,挨个

hdu 4691 最长公共前缀 后缀数组 +lcp+rmq

http://acm.hdu.edu.cn/showproblem.php?pid=4691 去年暑假多校赛的题,当时还不会后缀数组 现在会了,其实自己组合后缀数组跟rmq还是对的,但是题意理解有问题,于是折腾了很久,,,, 此处简单解释下题目样例吧,希望对读者有帮助  以最后一组数据为例 myxophytamyxopodnabnabbednabbingnabit 6 0 9 9 16 16 19 19 25 25 32 32 37 前两行不解释,题目叙述很清楚 从第三行,0 9 指的是第一个字

78 最长公共前缀

原题网址:https://www.lintcode.com/problem/longest-common-prefix/description 描述 给k个字符串,求出他们的最长公共前缀(LCP) 您在真实的面试中是否遇到过这个题?  是 样例 在 "ABCD" "ABEF" 和 "ACEF" 中,  LCP 为 "A" 在 "ABCDEFG", "ABCEFG", "ABCE

# Leetcode 14:Longest Common Prefix 最长公共前缀

公众号:爱写bug Write a function to find the longest common prefix string amongst an array of strings. If there is no common prefix, return an empty string "". 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". Example 1: Input: ["flower"

[转][LeetCode]Longest Common Prefix ——求字符串的最长公共前缀

题记: 这道题不难但是很有意思,有两种解题思路,可以说一种是横向扫描,一种是纵向扫描. 横向扫描:遍历所有字符串,每次跟当前得出的最长公共前缀串进行对比,不断修正,最后得出最长公共前缀串. 纵向扫描:对所有串,从字符串第0位开始比较,全部相等则继续比较第1,2...n位,直到发生不全部相等的情况,则得出最长公共前缀串. 横向扫描算法实现: //LeetCode_Longest Common Prefix //Written by zhou //2013.11.22 class Solution