题目描述:
给定字符串 S 和单词字典 words, 求 words[i] 中是 S 的子序列的单词个数。

示例:
输入:
S = “abcde”
words = [“a”, “bb”, “acd”, “ace”]
输出: 3
解释: 有三个是 S 的子序列的单词: “a”, “acd”, “ace”。

注意:
所有在words和 S 里的单词都只由小写字母组成。
S 的长度在 [1, 50000]。
words 的长度在 [1, 5000]。
words[i]的长度在[1, 50]。

方法1:
主要思路:解题链接汇总
(1)桶排序思路;
(2)将出现过的字符使用当前没有判断过的最前面的字符存储到对应buckets中;
(3)遍历S时,每次使用当前字符从buckets中取出一组索引;
(4)若当前的索引指向的单词已经判断完了全部的字符,则统计结果加1,否则,使用下一个没有判断的字符重新存储到对应的buckets中;

class Solution {public:int numMatchingSubseq(string S, vector<string>& words) {vector<vector<pair<int,int>>> buckets(26);for(int i=0;i<words.size();++i){//first存储的是单词对应的索引,second是当前没有判断的最前面的字符的索引buckets[words[i][0]-'a'].push_back({i,0});}int res=0;for(char&ch:S){vector<pair<int,int>> cur=buckets[ch-'a'];//取出当前字符对应的单词索引buckets[ch-'a'].clear();//情况for(pair<int,int>& indexs:cur){//判断取出的各个单词if(words[indexs.first].size()==indexs.second+1){//说明当前单词中的字符已经全部判读完了++res;}else{//重新存储到对应buckets中++indexs.second;buckets[words[indexs.first][indexs.second]-'a'].push_back({indexs.first,indexs.second});}}}return res;}
};

792 匹配子序列的单词数相关推荐

  1. LeetCode 792. 匹配子序列的单词数(Number of Matching Subsequences)

    792. 匹配子序列的单词数 792. Number of Matching Subsequences 相似题目 392. 判断子序列 转载于:https://www.cnblogs.com/hgli ...

  2. 392.判断子序列 | 792.匹配子序列的单词数

    392. 判断子序列 labuladong 题解思路 给定字符串 s 和 t ,判断 s 是否为 t 的子序列. 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成 ...

  3. Leetcode 792. 匹配子序列的单词数

    Leetcode 792. 匹配子序列的单词数 给定字符串 s 和字符串数组 words, 返回 words[i] 中是s的子序列的单词个数 . 字符串的 子序列 是从原始字符串中生成的新字符串,可以 ...

  4. Leetcode 792. 匹配子序列的单词数 C++

    Leetcode 792. 匹配子序列的单词数 题目 给定字符串 S 和单词字典 words, 求 words[i] 中是 S 的子序列的单词个数. 示例: 输入: S = "abcde&q ...

  5. LeetCode每日一题——792. 匹配子序列的单词数

    LeetCode每日一题系列 题目:792. 匹配子序列的单词数 难度:普通 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 给定字符串 s 和字符串数组 words, 返回 w ...

  6. 792. 匹配子序列的单词数

    792. 匹配子序列的单词数 二分搜索 class Solution {public:bool check(string& w, vector<vector<int>> ...

  7. ​力扣解法汇总792. 匹配子序列的单词数

    目录链接: 力扣编程题-解法汇总_分享+记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣 描 ...

  8. 力扣 792. 匹配子序列的单词数

    题目 给定字符串 s 和字符串数组 words, 返回 words[i] 中是s的子序列的单词个数 . 字符串的 子序列 是从原始字符串中生成的新字符串,可以从中删去一些字符(可以是none),而不改 ...

  9. leetcode 792. Number of Matching Subsequences | 792. 匹配子序列的单词数(Java)

    题目 https://leetcode.com/problems/number-of-matching-subsequences/ 题解 一看数据规模,普通暴力解法肯定超时了.想了半天怎么用 Trie ...

最新文章

  1. MySQL查询出错提示 --secure-file-priv解决方法
  2. mysql unsupported data type._数据查询Unsupported command错误
  3. 神策数据第五届“星斗奖”榜单公布!
  4. 创建springmvc配置
  5. 无论是cisco还是华三的书上对于子网划分有个问题需要解释
  6. python 日志解决方案_日常Python问题的绝佳解决方案
  7. python创建虚拟环境_Python学习笔记:创建Python开发Web程序的虚拟环境
  8. Python网络爬虫系列(一)
  9. nginx工作笔记005---nginx配置负载均衡_在微服务中实现网关集群_实现TCP传输层协议__http协议的负载均衡
  10. Spring Boot快速注册服务脚本
  11. 判断是否是完全二叉树和是否为满二叉树
  12. Sublime Text 3.1 编辑管理工程(项目)
  13. Android基础入门教程——7.6.3 基于TCP协议的Socket通信(2)
  14. Activiti工作流画图工具介绍
  15. 服务器CPU经常跑高是什么原因
  16. KafKa 启动异常 : ERROR Failed to clean up log for __consumer_offsets-30 in dir 另一个程序正在使用此文件,进程无法访问
  17. 计算机鼠标不灵活怎么办,鼠标左键不灵敏,教您鼠标左键不灵敏怎么办
  18. 笔记7.28 数据库经典问题
  19. “瓮中捉鳖”——涨停板一般出现在什么时候?
  20. 国内外可用的知识图谱资源

热门文章

  1. visual studio 2017 配置lua 5.x 开发环境
  2. 无源光网络的原理和构成
  3. matlab gup绘图,Matlab GPU计算平台 Gisdom图形工作站得心应手
  4. 使用Python+OpenCV+DVG-Utils实现人群计数与目标跟踪
  5. matlab 报错 保留变量,matlab中明明定义了函数变量总是报错
  6. Windows守护进程实现/设置程序图标/隐藏黑窗/获取exe所在目录/设置开机自启动
  7. Linux玩ps3游戏,手把手教你用PC笔记本畅玩PS3主机游戏教程
  8. Python在Windows系统中的安装
  9. 2023年最新Python安装详细教程
  10. html input format,html - Input format smpte-timecode - Stack Overflow