zoukankan      html  css  js  c++  java
  • LeetCode(14)Longest Common Prefix

    题目

    Write a function to find the longest common prefix string amongst an array of strings.

    分析

    该题目是求一个字符串容器中所有字符串的最长公共前缀。

    AC代码

    class Solution {
    public:
        string longestCommonPrefix(vector<string>& strs) {
            if (strs.size() == 0)
                return "";
            else if (strs.size() == 1)
                return *(strs.begin());
    
            vector<string>::iterator beg, end;
            beg = strs.begin();
    
            //先得到前两个串的公共前缀
            string str = CommonPrefix(*beg, *(beg+1));
    
            //迭代器后移两个位置
            beg += 2;
    
            while (beg != strs.end())
            {
                if (str == "")
                    break;
                str = CommonPrefix(str, *(beg++));
            }
    
            return str;
        }
    
        string CommonPrefix(const string &str1, const string &str2)
        {
            string common = "";
            if (str1 == "" || str2 == "")
                return common;
    
            int len1 = strlen(str1.c_str()) , len2 = strlen(str2.c_str());
    
            int len = len1 > len2 ? len2 : len1 ;
    
            for (int i = 0; i < len; i++)
            {
                if (str1[i] == str2[i])
                    common += str1[i];
                else
                    break;
            }
    
            return common;
        }
    };

    GitHub测试程序代码

  • 相关阅读:
    govalidators 验证
    go iris框架 获取url的两种方法
    tornado框架
    并发/并行,阻塞/非阻塞,同步/异步
    CSS选择器及优先级
    linux下压力测试命令ab
    asyncio
    linux网络原理及基础设置
    linux命令
    linux简介
  • 原文地址:https://www.cnblogs.com/shine-yr/p/5214927.html
Copyright © 2011-2022 走看看