匹配已有字符串

[dp]Search 字符串匹配问题 Problem D Search Time Limit: 1000ms, Memory Limit:64MB Description When we search for something on internet, we always use two characters “” and “?”. ”” represents 0 or more lowercase letters,”?” r 阅读详情

生活小妙招

通过set和substr函数,方便快捷地写出匹配已有字符串的代码

前置芝士:set使用详解

题目:G. Perfect Word

代码实现

//通过set + string的substr的使用快速匹配已有字符串 
#include<bits/stdc++.h>
#define ll long long
#define rep(i,j,k) for(int i=j;i<=k;i++)
using namespace std; 
string s[100005];
set<string>S;
int n;
bool cmp(const string& a, const string& b){
    return a.size()<b.size();
}
void solve(){
    cin>>n;
    int ans=0;
    rep(i,1,n){
        cin>>s[i];
    }
    sort(s+1,s+n+1,cmp);
    rep(i,1,n){
        if(s[i].size()==1 || ( (S.count(s[i].substr(0,s[i].size()-1))) && (S.count(s[i].substr(1))) )){
            S.insert(s[i]);
            ans = max(ans, (int)s[i].size());
        }
    }
    cout<<ans;
} 
int main()
{
    ios_base::sync_with_stdio(false); 
    cin.tie(0); 
    cout.tie(0);
    int t=1;
    //cin>>t;
    while(t--){
        solve();
    }
    return 0;
} 

代码中的字符串匹配技巧

第20行条件中(S.count(s[i].substr(0,s[i].size()-1))

S是一个set,储存之前遇到过的一系列字符串,同时也有去掉重复字符串的功能,而set的count()方法功能为:如果S中有括号中的字符串,就返回1,否则返回0。

再看count括号中的s[i].substr(0,s[i].size()-1)部分,string的substr有提取子串的功能,具体用法为:.substr(起始下标, 从起始下标开始所需提取的长度)。

所以,上述彩色代码所描述的是,在S中查找是否具有“s[i]的前n-1个元素所构成的子串”

(给初学者的说明:s[i]是一个字符串,这里看不懂的去看string的基础用法)

EtherCAT-7 从站代码移植-SPI STM32F103 + AX58100,从站代码移植。 阅读详情

相关推荐

开源TMS系统cortex-tms私有化部署与二次开发实战指南

运输管理系统(TMS)是现代物流数字化的核心组件,它通过将线下零散的物流操作转化为线上标准化、可追溯的数据流,实现订单、调度、跟踪与结算的全流程管理。其技术原理通常基于微服务架构,采用Spring Boot、Vue.js等成熟技术栈构建,确保系统的稳定性和可扩展性。TMS的技术价值在于显著提升物流企业的运营效率、降低成本并增强过程可控性,尤其适用于中小型物流企业实现从手工管理到系统化管理的跨越。在应用场景上,TMS广泛应用于车队管理、订单跟踪和财务结算等环节。本文聚焦于开源TMS项目cortex-tms,深

weixin_42523907的博客 746

KMP字符串模式匹配详解 KMP字符串模式匹配详解

    个人觉得这篇文章是网上的介绍有关KMP算法更让人容易理解的文章了,确实说得很“详细”,耐心地把它看完肯定会有所收获的~~,另外有关模式函数值next[i]确实有很多版本啊,在另外一些面向对象的算法描述书中也有失效函数 f(j)的说法,其实是一个意思,即next[j]=f(j-1)+1,不过还是next[j]这种表示法好理解啊:                              

brooks_lowry的专栏 404

neruolib全脑建模计算框架

neurolib 是一个用python编写的全脑建模计算框架,也是可扩展的、允许轻松实现自定义神经质量模型,能够在介观尺度上表示脑区平均活动。

Rootfyx的博客 1146

KMP字符串模式匹配

KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法。简单匹配算法的时间复杂度为O(m*n);KMP匹配算法。可以证明它的时间复杂度为O(m+n).。 一.简单匹配算法 /** * 1. 普通算法 * 从字符数组S中找到与字符数组T匹配的起始字符的下标索引值 * @param S * 预查找的源字符串数组 * @param

szl的专栏 636

【ESP32】ESP32连接JY61P并通过WIFI发送给电脑

ESP32S连接JY61P并通过WIFI把姿态数据发送给电脑1.采用Arduino IDE编译器;需要安装ESP32的开发板管理器;2.电脑接受数据是基于python的;

Doudou_Nai的博客 1131

SAP销售订单POD实操:从VL01N创建到VLPOD差异处理,保姆级避坑指南

本文详细解析SAP销售订单POD全流程,从VL01N创建到VLPOD差异处理,提供保姆级避坑指南。涵盖核心业务逻辑、前置配置、销售订单创建、交货单处理及差异解决方案,帮助用户高效管理供应链执行环节,确保财务与物流的准确对接。

weixin_27219587的博客 622

PKU3461(Oulipo)字符串匹配-KMP算法

/************************************************* 题目大意: 求第一个字符串在第二个字符串中出现的次数; 即求主串能与子串进行多少次匹配; 算法思想: KMP算法,在发生失配时,文本串不需要回溯; 而是利用已经得到的"部分匹配"结果将模式串右移尽可能远的距离,继续进行比较; 模式串不一定向右移动一个字符的位置; 右移也不一定必须从模式串起点处重

始往流离,终彼成章。 1586

黑猫带你学UFS协议第17篇:UFS安全模式详解(Secure Mode)

本文详细介绍了UFS协议中的安全模式,包括Erase, Discard, Purge和Wipe Device操作。Erase用于永久删除数据并确保无法恢复;Discard不保证数据清除;Purge类似于Sanitize,清除内部未映射的物理块数据;Wipe Device则是格式化设备。这些操作涉及逻辑单元、擦除单位、相关寄存器配置等,确保数据安全。" 126036669,12409270,MySQL 8.0 开窗函数详解,"['数据库理论', 'SQL']

黑猫奥利奥的博客 2559

KMP字符串模式匹配详解(一)

个人觉得这篇文章是网上的介绍有关KMP算法更让人容易理解的文章了,确实说得很“详细”,耐心地把它看完肯定会有所收获的~~,另外有关模式函数值next[i]确实有很多版本啊,在另外一些面向对象的算法描述书中也有失效函数 f(j)的说法,其实是一个意思,即next[j]=f(j-1)+1,不过还是next[j]这种表示法好理解啊:                                    ...

sundful的专栏 174

从零玩转Vitis裸机开发:手把手教你创建、移植与实战优化

✅ Vitis裸机开发全流程✅ 中断系统配置技巧✅ 跨平台移植方法论✅ 性能优化实战经验研究FreeRTOS移植探索AMP(非对称多处理)架构学习使用Vitis Analyzer进行性能分析技术雷达:关注Xilinx最新推出的Vitis Unified IDE,其集成了更强大的调试和分析工具。立即动手实践吧!

QQ_778132974的博客 583

Python 爬虫 + 数据分析:社会调查数据抓取与结果可视化分析

在当今数字化时代,数据已成为推动社会发展的关键资源之一。无论是市场调研、学术研究还是政策制定,社会调查数据都扮演着至关重要的角色。通过 Python 爬虫技术,我们可以高效地获取这些数据,并结合数据分析与可视化工具,深入挖掘数据背后的价值。本文将通过一个完整的实战项目,带你掌握如何使用 Python 爬虫抓取社会调查数据,并进行可视化分析。

yansideyucsdn的博客 126

KMP字符串匹配算法

KMP字符串匹配算法 文/编辑 KMP完全匹配算法和Levenshtein相似度匹配算法是模糊查找匹配字符串中最经典的算法,配合近期技术栏目关于算法的探讨,从网上摘取了一些简要的内容,加上自己的一些理解,向大家普及一些这方面的知识,希望能抛砖引玉。 l 算法简介: kmp算法是一种改进的字符串匹配算法,由D.E.Knuth与V.R.Pratt和J.H.Morri...

weixin_30446197的博客 104

android11.0 Launcher3 高端定制之循环滑动

待机界面可以向左、向右循环切换页面 效果图 修改清单 packages/apps/Launcher3/res/values-zh-rCN/strings.xml packages/apps/Launcher3/res/values/config.xml packages/apps/Launcher3/res/values/strings.xml packages/apps/Launcher3/res/xml/launcher_preferences.xml packages/apps/Launc

cczhengv 1545

java自动机字符串匹配_字符串匹配之有限自动机

字符串匹配的基本解决方案,是在长串中从头至尾遍历匹配模式串,直到找到完全匹配的位置,这样做一个最大的问题就是每次都重头开始匹配,完全没有用到已经匹配过的结果,非常的浪费,于是自动有限机和KMP就是基于这种利用已经匹配到的结果,在不匹配的位置出现时,立即查找下一个有效位置的算法。在列出有限自动机的定义之前,想先讲讲这个算法的思想。所谓有限自动机机,我理解就是一张状态转移表,表头包括有限的模式串字符集...

weixin_35502173的博客 318

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

串---字符串模式匹配

问题: 查找子串在主串中出现的位置 算法: Brute-force:从主串中第pos个字符开始与模式串的第一个字符比较,如果相等则继续逐个比较后续字符;否则从主串的下一个字符开始比较,依次类推。 KMP:在每一趟出现字符不相等时,不需要退回主串的指针,而是利用已经得到的前面部分匹配的结果,将模式串向右滑动若干个字符后继续与主串的当前字符进行比较。 代码: 1.顺序串基本操作的头文件: #pra...

qq_38904904的博客 224

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

KMP 字符串模式匹配详解

KMP 字符串模式匹配详解KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法。简单匹配算法的时间复杂度为O(m*n);KMP匹配算法。可以证明它的时间复杂度为O(m+n).。一 . 简单匹配算法 先来看一个简单匹配算法的函数: int Index_BF ( char S

行者无疆 751

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

字符串匹配的KMP算法

字符串匹配是计算机的基本任务之一。   举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?   许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家Donald Knuth。   这种算法不太容易理解,网上有很多解释,...

weixin_30951231的博客 67

字符串匹配的kmp算法

转自:http://www.ruanyifeng.com/blog/2013/05/Knuth–Morris–Pratt_algorithm.html 字符串匹配是计算机的基本任务之一。 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"? 许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是...

WitsMakeMen的专栏 195

KMP字符串模式匹配详解

KMP字符串模式匹配详解 KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法。简单匹配算法的时间复杂度为O(m*n);KMP匹配算法。可以证明它的时间复杂度为O(m+n).。 一.简单匹配算法 先来看一个简单匹配算法的函数: int Index_BF ( char S [ ], char T [ ], int pos ) { /* 若串 S

卡布奇诺的专栏 761

【字符串匹配算法:BF & KMP】

从BF到KMP

Q1697354625 543

字符串匹配算法--KMP

一、KMP算法基本介绍   1、改进的字符串匹配算法   2、由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现,因此人们称它为克努特-莫里斯-普拉特操作(简称KMP算法)   3、每当一趟匹配过程中出现字符比较不等时,不需要回溯i指针,而是利用已经得到的“部分匹配”的结果将模式串向后“滑动”尽可能远的一段距离后,继续进行比较。这样利用匹配失败后的信息,尽量减少模式串与主...

weixin_30781775的博客 158

字符串暴力匹配

#include<stdio.h> #include<stdlib.h> typedef struct string{ int len; char *data; }*String1,string1; String1 init(){ String1 s=(String1)malloc(sizeof (string1)); if(s){ s->len=0; s->data=NULL; } ret.

qq_44307686的博客 128

字符串--manacher算法(回文串匹配)

模板传送门 manacher,也叫马拉车,是一个回文串匹配算法,代码短小精干,也好理解。 我这里放一个讲的好的人的blog:manacher 模板题代码: #include<cstdio> #include<algorithm> #include<cstring> using namespace std; int n,a...

weixin_34067980的博客 103
上一篇: Educational Codeforces Round 141 Editorial C~D
下一篇: Codeforces Raif Round 1 (Div. 1 + Div. 2) D
mucstdio
博客等级 码龄7年 7粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值