zoukankan      html  css  js  c++  java
  • LeetCode 14. 最长公共前缀(Longest Common Prefix)

    题目描述

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

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

    示例 1:

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

    示例 2:

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

    说明:

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

    解题思路

    首先定义一个查找公共前缀的函数comPre,从两个字符串的首字符开始比较,若对应字符相等就将其加到结果中,这样遍历直到字符不相等或者走到任意一个字符串末尾。

    回到原题目,首先把最长公共前缀定义为第一个字符串,接着从第二个字符串开始,依次查找最长公共前缀与当前字符串的最长公共前缀,直到字符串数组末尾,最后求得的最长公共前缀即为结果。

    代码

     1 class Solution {
     2 public:
     3     string longestCommonPrefix(vector<string>& strs) {
     4         if(strs.empty())
     5             return "";
     6         string longPre = strs[0];
     7         for(int i = 1; i < strs.size(); i++){
     8             longPre = comPre(longPre, strs[i]);
     9         }
    10         return longPre;
    11     }
    12     string comPre(string s1, string s2){
    13         int i = 0;
    14         string comPre = "";
    15         while(i < s1.size() && i < s2.size()){
    16             if(s1[i] == s2[i])
    17                 comPre += s1[i];
    18             else break;
    19             i++;
    20         }
    21         return comPre;
    22     }
    23 };
  • 相关阅读:
    python3爬虫-快速入门-爬取图片和标题
    数据库Mysql的学习(八)-储存过程和事务和导入导出
    数据库Mysql的学习(七)-自定义函数和流程控制
    git reset --hard HEAD^
    list采坑记录一下
    Linux运行jar包
    JSONObject.toJSONString(map)
    String转list
    判断list中元素是否是相邻
    统计List中相同的元素
  • 原文地址:https://www.cnblogs.com/wmx24/p/9147545.html
Copyright © 2011-2022 走看看