建立网站是很多企业开始进行网络营销的第一步,网站建设佰首选金手指十八,网站建设规划与管理 试卷,网络营销考试题目及答案2022题目
给你一个大小为 n 的字符串数组 strs #xff0c;其中包含n个字符串 , 编写一个函数来查找字符串数组中的最长公共前缀#xff0c;返回这个公共前缀。
数据范围#xff1a;0≤n≤5000#xff0c; 0≤len(strsi)≤5000
进阶#xff1a;空间复杂度 O(1)#xff0c;…题目
给你一个大小为 n 的字符串数组 strs 其中包含n个字符串 , 编写一个函数来查找字符串数组中的最长公共前缀返回这个公共前缀。
数据范围0≤n≤5000 0≤len(strsi)≤5000
进阶空间复杂度 O(1)时间复杂度 O(n∗len)
示例1
输入
[abca,abc,abca,abc,abcc]
返回值
abc示例2
输入
[abc]
返回值
abc思路 以第一个字符串为基准与其他字符串进行比较。从第一个字符开始逐位比较即可找出最长公共前缀。
解答代码 #include type_traits
class Solution {
public:/*** param strs string字符串vector * return string字符串*/string longestCommonPrefix(vectorstring strs) {// write code hereauto size strs.size();if (size 0) {return ;} else if (size 1) {return strs[0];}// 找出字符串的最小长度string::size_type min_str_size strs[0].size();for (auto str : strs) {min_str_size min(min_str_size, str.size());}string res;for (string::size_type j 0; j min_str_size; j) {char tmp;for (string::size_type i 0; i size; i) {if (i 0) {// 取第一个字符串中的第j个字符作为比较基准tmp strs[i][j];} else {if (tmp ! strs[i][j]) {// 有不相同的了直接返回当前保存的值return res;}}}// 所有字符串的第j个字符都相等存入返回值中res.push_back(tmp);}return res;}
};