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

【拒绝算法PUA】LeetCode 2255. 统计是给定字符串前缀的字符串数目

目录

系列文章目录

专题总结:

C++刷题技巧总结:

题目 2116. 判断一个括号字符串是否有效

难度

描述

解题方法1


系列文章目录

专题总结:

  1. 【拒绝算法PUA】0x00-位运算
  2. 【拒绝算法PUA】0x01- 区间比较技巧
  3. 【拒绝算法PUA】0x02- 区间合并技巧
  4. 【拒绝算法PUA】0x03 - LeetCode 排序类型刷题
  5. 【拒绝算法PUA】LeetCode每日一题系列刷题汇总-2025年持续刷新中

C++刷题技巧总结:

  1. 温习C/C++]0x04 刷题基础编码技巧

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

2255. 统计是给定字符串前缀的字符串数目https://leetcode.cn/problems/count-prefixes-of-a-given-string/description

难度

简单

描述

给你一个字符串数组 words 和一个字符串 s ,其中 words[i] 和 s 只包含 小写英文字母 。

请你返回 words 中是字符串 s 前缀 的 字符串数目 。

一个字符串的 前缀 是出现在字符串开头的子字符串。子字符串 是一个字符串中的连续一段字符序列。

示例 1:

输入:words = ["a","b","c","ab","bc","abc"], s = "abc"
输出:3
解释:
words 中是 s = "abc" 前缀的字符串为:
"a" ,"ab" 和 "abc" 。
所以 words 中是字符串 s 前缀的字符串数目为 3 。

示例 2:

输入:words = ["a","a"], s = "aa"
输出:2
解释:
两个字符串都是 s 的前缀。
注意,相同的字符串可能在 words 中出现多次,它们应该被计数多次。

提示:

  • 1 <= words.length <= 1000
  • 1 <= words[i].length, s.length <= 10
  • words[i] 和 s  包含小写英文字母。

    解题方法1

    单向滑动窗口,获取s子字符串前缀,然后将前缀在words中查找和计数。

    #include <iostream>
    #include <vector>
    #include <string>
    #include <algorithm>
    
    using namespace std;
    
    class Solution {
    public:
        int countPrefixes(vector<string>& words, string s) {
            int res = 0;
            int left = 0;
            int right = 0;
            int len = s.size();
            while (right <= len) {
                string tmp = s.substr(left, right++);
                if (std::count(words.begin(), words.end(), tmp) != 0) {
                    res += std::count(words.begin(), words.end(), tmp);
                }
            }
            return res;
        }
    };
    
    int main(int argc, char **argv) {
        Solution obj;
        vector<string> words = {"a","b","c","ab","bc","abc"};
        string s = "abc";
    //    vector<string> words = {"a","a"};
    //    string s = "aa";
        int ret = obj.countPrefixes(words, s);
        cout << ret << endl;
        return 0;
    }

    输出:

    3

      关注我,跟我一起每日一题!
    【拒绝算法PUA】LeetCode每日一题系列刷题汇总-2025年持续刷新中

    相关文章:

  • 在Luckfox上使用EdgeVoice语音助手
  • 欢迎来到未来:探索 Dify 开源大语言模型应用开发平台
  • Flutter项目升级到指定版本的详细步骤指南
  • 解决IDEA中maven找不到依赖项的问题
  • TCP传输---计算机网络
  • 【C/C++算法】从浅到深学习--- 简单模拟算法(图文兼备 + 源码详解)
  • 基于深度学习的图片识别系统(上)
  • 数据库分类、存储引擎、介绍、Mysql、SQL分类
  • SpringBoot接口防抖(防重复提交)的一些实现方案
  • 【开源宝藏】30天学会CSS - DAY7 第七课 CSS 关键帧打造Preloader 追逐动画
  • search_fields与filterset_fields的使用
  • Linux fority source和__builtin_xxx
  • 每日一题-力扣-2116. 判断括号字符串是否可以变为有效-20250323
  • C语言指针
  • 云原生 | 下一代CI/CD工具,Tekton入门部署指南
  • C++学习:六个月从基础到就业——C++基础语法回顾:控制流语句
  • Spark2 之 Expression/Functions
  • Simple-BEV的bilinear_sample 作为view_transformer的解析,核心是3D-2D关联点生成
  • 穿越之程序员周树人的狂人日记Part3__人机共生纪元
  • Extend module 01:Keyboard
  • 微博:严厉打击对肖某董某事件蹭炒热点、编造故事博流量等行为
  • 《探秘海昏侯国》数字沉浸特展亮相首届江西文化旅游产业博览交易会
  • 乌副总理:乌美签署矿产协议
  • 徐徕任上海浦东新区副区长,此前已任区委常委
  • 腾讯重构混元大模型研发体系:成立大语言和多模态模型部,提升AI长期技术作战能力
  • 首映|“凤凰传奇”曾毅:拍电影,我是认真的