欢迎光临散文网 会员登陆 & 注册

255. 统计是给定字符串前缀的字符串数目

2023-04-01 01:00 作者:目标力扣Knight  | 我要投稿

2255. 统计是给定字符串前缀的字符串数目

方法一:双指针

获取word中每一个元素,遍历该元素比对其与s的重合程度,若遍历结束指针大小与该元素相等,则说明是前缀

该判断方法将调用多次,至多一千次,因此封装为函数

Python版本

C++版本


复杂度分析

  • 时间复杂度: O(N)。考虑到标的字符串和比较字符串可以完全相同,那么比较次数可能为 words 数组长度与 s 串长度的乘积,即 1000 x 10 = 10000

  • 空间复杂度:O(1)。

方法二:调用库函数

Python 中 str 数据类型有此方法 str.startswith()可以帮助我们快速判断前缀

Python版本

C++版本string.find()方法不稳定,暂无

复杂度分析

  • 时间复杂度:O(N)。仅考虑循环次数,此处的N指的是 words 数组的长度,上限为1000. 考虑到子字符最长为10,即常数C,总遍历次数上限为10000,可看做复杂度为 N。

  • 空间复杂度:O(1)。

备注

  • 此题和884. 两句话中的不常见单词都使用了封装,即把验证每一个数据对象是否为前缀的部分代码封装为一个子函数,在C++中是以lambda函数的方式实现的。

  • 这启示我们对于代码中相同的结构尽量做出抽象,但同时注意到,函数形式比起匿名函数宽容度更高,即对数据的操作更加自由,而且语法层面不太容易出错,一定要记得:匿名函数整体作为一句话代码,其后一定有分号;


255. 统计是给定字符串前缀的字符串数目的评论 (共 条)

分享到微博请遵守国家法律