Leetcode792-匹配子序列的单词数
二分查找
用一个p数组来存所有小写字母在s中的下标。然后对于每个要询问的单词,我们假设要找到单词中的某个字母在s中的位置,而它前一个字母在s中的位置为idx,则我们可以利用二分查找在p数组中这个字母在下标idx之后的第一个位置(基于贪心的思想),如果没找到,说明该单词不存在;否则找到了这个字母,更新idx,继续向后查找。
class Solution {
public:int numMatchingSubseq(string s, vector<string>& words) {vector<vector<int>> p(26);for(int i=0;i<s.size();i++) p[s[i]-'a'].push_back(i);int ans=0;for(auto ss:words){int idx=-1;bool ok=1;for(int i=0;i<ss.size();i++){auto q=upper_bound(p[ss[i]-'a'].begin(),p[ss[i]-'a'].end(),idx);if(q==p[ss[i]-'a'].end()){ok=0;break;}idx=*q;}if(ok) ans++;}return ans;}
};
时间复杂度:O(d+nlogn),d为s串的长度,n为所有待询问的单词的长度之和
空间复杂度:O(d)
Leetcode792-匹配子序列的单词数相关推荐
- leetcode792. 匹配子序列的单词数
给定字符串 S 和单词字典 words, 求 words[i] 中是 S 的子序列的单词个数. 示例: 输入: S = "abcde" words = ["a" ...
- LeetCode 792. 匹配子序列的单词数(Number of Matching Subsequences)
792. 匹配子序列的单词数 792. Number of Matching Subsequences 相似题目 392. 判断子序列 转载于:https://www.cnblogs.com/hgli ...
- 392.判断子序列 | 792.匹配子序列的单词数
392. 判断子序列 labuladong 题解思路 给定字符串 s 和 t ,判断 s 是否为 t 的子序列. 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成 ...
- 20200209:匹配子序列的单词数(leetcode792)
匹配子序列的单词数 题目 思路与算法 代码实现 复杂度分析 题目 思路与算法 本题最简明的思路依然是暴力法,第一时间想到的是对S的所有字符进行组合枚举,但看了一下S的长度是50000以内,所以放弃枚举 ...
- 青铜三人行之匹配子序列的单词数
先说一个消息,为了方便互相交流学习,青铜三人行建了个微信群,感兴趣的伙伴可以扫码加下面的小助手抱你入群哦! 每周一题,代码无敌~这次让我们换换口味,讨论一个稍微偏实际一点的问题: 视频 青铜三人行-- ...
- LeetCode 0792. 匹配子序列的单词数
[LetMeFly]792.匹配子序列的单词数 力扣题目链接:https://leetcode.cn/problems/number-of-matching-subsequences/ 给定字符串 s ...
- LC792. 匹配子序列的单词数
LC792. 匹配子序列的单词数题解 题目来源LC792. 匹配子序列的单词数 题干 给定字符串 s 和字符串数组 words, 返回 words[i] 中是s的子序列的单词个数 . 字符串的 子序列 ...
- Leetcode 792. 匹配子序列的单词数
Leetcode 792. 匹配子序列的单词数 给定字符串 s 和字符串数组 words, 返回 words[i] 中是s的子序列的单词个数 . 字符串的 子序列 是从原始字符串中生成的新字符串,可以 ...
- Leetcode 792. 匹配子序列的单词数 C++
Leetcode 792. 匹配子序列的单词数 题目 给定字符串 S 和单词字典 words, 求 words[i] 中是 S 的子序列的单词个数. 示例: 输入: S = "abcde&q ...
- LeetCode每日一题——792. 匹配子序列的单词数
LeetCode每日一题系列 题目:792. 匹配子序列的单词数 难度:普通 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 给定字符串 s 和字符串数组 words, 返回 w ...
最新文章
- oracle中间件微信公众号,对TP5.1中间件融合微信公众号代码的优化
- c语言程序检测进程pid,C语言实现由PID获取进程名由进程名获取PID
- 系列(五)—MySql
- 应用环境下的TIME_WAIT和CLOSE_WAIT
- LeetCode 816. 模糊坐标
- 本机不装Oracle,使用plsql连接远程Oracle的方法
- Spring Cloud Alibaba入门简介
- spython_spython
- 私塾在线java设计模式综合项目实战
- 海康威视错误代码说明(一)(错误代码:1~14)
- callmode php_phper必须了解的php常识
- Kali Linux工具大全-信息收集
- 使用Python开发小说下载器,不再为下载小说而发愁
- 【Windows】win10如何拦截弹窗?
- DeFi 2.0的LaaS协议,重振DeFi赛道发展的关键
- 曹鹏 其言其人 2009-06-15 17:44
- 第二十一章 数据库角色
- 单片机简单Log日志封装
- 使用Squid架设代理服务器实现局域网共享上网
- [MM32生态]EVB-L0136开发学习分享