zl程序教程

您现在的位置是:首页 >  后端

当前栏目

LeetCode刷题(12)【简单】最长公共前缀(C++)

C++LeetCode 简单 12 刷题 最长 公共 前缀
2023-09-27 14:25:56 时间
最长公共前缀

题目链接——最长公共前缀
在这里插入图片描述

代码示例:

class Solution {

public:

 string longestCommonPrefix(vector string strs) {

 //容器为空

 if(strs.size() == 0)

 return "";

 for (int i = 0; i strs[0].size(); i++) 

 char ch = strs[0][i];

 for (int j = 1; j strs.size();j++) 

 if (strs[j][i] != ch || i strs[j].size()) 

 return strs[0].substr(0, i);

 //全都一样

 return strs[0];

};

题解:

垂直比较。

如果容器为空,返回“”

以容器中第一个字符串为标准,将它的每个字母和容器中其它字符串的每一个字母做比较,

如果不同或者此时遍历的长度i,已经大于了其他某个字符串的长度,

那么直接返回第一个字符串截取到上一个i,这么长。

substr截取区间为左闭右开。

容器中字符串全都相等,或者只有一个元素

返回本身(第一个字符串)。