导航

力扣刷题计划-字符串-最长公共前缀

Posted on 2021-07-29 09:20  Hosseini  阅读(44)  评论(0编辑  收藏  举报

1.原题地址

14. 最长公共前缀 - 力扣(LeetCode) (leetcode-cn.com)

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

示例 1:

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

示例 2:

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

3.分析

最简单的方法是遍历每个字符串的相同位置的字符,挨个比对。

4.代码

 1 class Solution {
 2 public:
 3 
 4     string longestCommonPrefix(vector<string>& strs) {
 5         if(strs.size()==0)
 6             return "";
 7         if(strs[0].size()==0)
 8             return "";
 9 
10         string result = "";
11         for(unsigned k = 0;k<strs[0].size();++k)
12         {
13             char tmp = strs[0][k];//参照字符,初始化成第一个字符
14             for(unsigned i = 0;i<strs.size();++i)//遍历所有的字符串
15             {
16                 if(strs[i].size()<k+1)//第i个字符串的长度小于 k+1
17                     return result;
18 
19                 if(strs[i][k]!=tmp)//第i个字符串的第j个字符和tmp不相同
20                 {
21                     return result;
22                 }            
23             }
24             result = result + tmp;
25         }
26         return result;
27     }
28 };