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

【打卡】牛客网:BM84 最长公共前缀

自己写的:

题目要求时间复杂度是o(n*len),说明可以遍历所有的字符。

空间复杂度o(1),说明不能用字符串存储公共前缀,所以用下标来记录。

调试过程:

大概花了20min。

我调试前的做法是,在while循环中,从后往前遍历,用的j--。但是没有考虑到第0个字符串长度很小的问题。所以改成了j++。

class Solution {
public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param strs string字符串vector * @return string字符串*/string longestCommonPrefix(vector<string>& strs) {// write code here int ans = 100000; //粗心,错误示范:ans = 0int n = strs.size();cout<<"n"<<n<<endl;if(n == 0)return "";if(n == 1)return strs[0];for(int i = 1; i < n; i++){int j = 0; while(j < strs[0].size() && j < strs[i].size() && strs[0][j] == strs[i][j]) // 第0个字符串长度可能很小j++;// j为相同字符串的位置的后一个,或者为两个字符串中,短的字符串的长度   ans = min(ans, j); }return strs[0].substr(0, ans); //粗心,左闭右开!}
};

模板的:

 我采用的是,第一个字符串和后面每个字符串,二者逐次比较,即二者逐个字符进行比较。

模板的是,针对每个字符,从前往后,比较所有的字符串是否相同。

时间复杂度都是o(n*len)。

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

相关文章:

  • 我在Vscode学OpenCV 图像处理三(图像梯度--边缘检测【图像梯度、Sobel 算子、 Scharr 算子、 Laplacian 算子、Canny 边缘检测】)
  • 2023年全国职业院校技能大赛软件测试赛题—单元测试卷⑤
  • seata分布式事务(与dubbo集成)
  • Leetcod面试经典150题刷题记录 —— 数学篇
  • x-cmd pkg | csview - 美观且高性能的 csv 数据查看工具
  • 前端八股文(性能优化篇)
  • .Net Core项目在linux部署实战 1.sdk下载 2.环境变量配置/ect/profile 3.运行
  • Python 基于Open3D的点云均匀下采样算法
  • 【MySQL】本地创建MySQL数据库详解
  • 18、golang时间管理
  • 远程开发之vacode插件Remote - SSH
  • 大模型实战营Day4 作业
  • 翻译: Streamlit从入门到精通 基础控件 一
  • 【复现】网康科技-防火墙存在RCE漏洞_17
  • vue2、vue3里面去掉访问地址中路由‘#‘号--nginx配置
  • AR HUD全面「上新」
  • Open3D AABB包围盒计算与使用(19)
  • HDFS相关API操作
  • 【AI视野·今日Robot 机器人论文速览 第七十二期】Mon, 8 Jan 2024
  • 背包问题(补充中)
  • 十三、QPalette的简单使用(Qt5 GUI系列)
  • uniapp小程序超出一行显示...并展示更多按钮
  • Qt打包程序
  • 实验用PFA材质烧杯和高硼硅玻璃材质有什么区别?
  • Raspbian安装摄像头
  • 迅腾文化用网络集成化生态系统助力品牌之路的坚实后盾
  • 2401C++,C++编译时自动加密
  • vue 自定义网页图标 favicon.ico 和 网页标题
  • JOSEF约瑟端子排中间继电器 DZY-204 DC110V 导轨安装,板前接线
  • VMware workstation搭建与安装AlmaLinux-9.2虚拟机