当前位置: 首页 > news >正文

14.最长公共前缀

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

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

示例 1:

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

输出:"fl"

示例 2:

输入:strs = ["dog","racecar","car"]

输出:""

解释:输入不存在公共前缀。

来源:力扣(LeetCode)

链接:https://leetcode.cn/problems/longest-common-prefix

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

方法:纵向扫描。

纵向扫描时,从前往后遍历所有字符串的每一列,比较相同列上的字符是否相同,如果相同则继续对下一列进行比较,如果不相同则当前列不再属于公共前缀,当前列之前的部分为最长公共前缀。

class Solution {

public:

string longestCommonPrefix(vector<string>& strs) {

if (!strs.size()) {

return "";

}

int length = strs[0].size();

int count = strs.size();

for (int i = 0; i < length; ++i) {

char c = strs[0][i];

for (int j = 1; j < count; ++j) {

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

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

}

}

}

return strs[0];

}

};

时间复杂度:O(mn),其中 m 是字符串数组中的字符串的平均长度,n 是字符串的数量。最坏情况下,字符串数组中的每个字符串的每个字符都会被比较一次。

空间复杂度:O(1)。使用的额外空间复杂度为常数。

http://www.lryc.cn/news/13770.html

相关文章:

  • 【免费教程】 SWMM在城市水环境治理中的应用及案例分析
  • SortableJS/Sortable拖拽组件,使用详细(Sortablejs安装使用)
  • Heartbeat+Nginx实验
  • JavaEE|网络编程之套接字 TCP
  • Robot Framework自动化测试---元素定位
  • ASP.NET Core中的路由
  • VBA提高篇_26 Textbox多行_ListBox_ComboBox
  • python环境配置
  • 集算器连接外部库
  • 力扣刷题|216.组合总和 III、17.电话号码的字母组合
  • 机器学习笔记之谱聚类(一)k-Means聚类算法介绍
  • 云原生周刊 | 2023 年热门:云 IDE、Web Assembly 和 SBOM | 2023-02-20
  • python 打包EXE
  • CANopen概念总结、心得体会
  • 【2】MYSQL数据的导入与导出
  • Kaggle系列之CIFAR-10图像识别分类(残差网络模型ResNet-18)
  • ESP-C3入门11. 创建最基本的HTTP请求
  • K8S+Jenkins+Harbor+Docker+gitlab集群部署
  • 看见统计——第四章 统计推断:频率学派
  • 2023年2月访问学者博士后热门国家出入境政策变化汇总
  • “离开浪浪山”是假象,80%年轻人下班后还在学习,真实是想先上个山。
  • Kotlin 33. CompileSdkVersion 和 targetSdkVersion 有什么区别?
  • 实用调试技巧——“C”
  • JavaScript - 函数
  • Cesium 卫星轨迹、卫星通信、卫星过境,模拟数据传输。
  • 2023年湖北中级职称(工程类建筑类)报名条件和要求是什么?
  • socket编程复习
  • 深度学习神经网络基础知识(三)前向传播,反向传播和计算图
  • 一图说明 monorepo 落地流程方案
  • SAP ABAP WRITE语法大全