C++ STL子序列匹配

CSP-J 2023 阅读程序题解析:最长公共子序列(LCS)算法与 vector 二维数组实战 本文深度解析了CSP-J 2023阅读程序题中的最长公共子序列(LCS)算法与vector二维数组实战应用。通过详细讲解LCS的动态规划原理、vector的三种初始化方法及性能对比,帮助参赛者掌握核心算法与STL容器的使用技巧,提升竞赛解题效率。 阅读详情

#include <iostream>
#include <string>
#include <vector>
#include <iterator>
#include <algorithm>
#include <list>
#include <set>
#include <cstdlib>
using namespace std;


template <class Integer>

struct congruent
{
 congruent(Integer mod)
 {
  N=mod;
 }
 bool operator()(Integer a,Integer b)const
 {
  return (a-b)%N==0;
 }
 Integer N;
};

int main()
{
 const char s1[]="Hello,world!";
 const char s2[]="world";
 const int N1=strlen(s1);
 const int N2=strlen(s2);

 const char* p=search(s1,s1+N1,s2,s2+N2);
 if(p!=s1+N1)
  cout<<p-s1<<endl;
 else
  cout<<"error"<<endl;

 /**************带条件的search*****************************/
 int A[10]={23,46,81,2,43,19,14,98,72,51};
 int digits[3]={1,2,3};

 int* seq=search(A,A+10,digits,digits+3,congruent<int>(10));//???执行过程
 if(seq!=A+10)
  cout<<seq-A<<endl;
 else
  cout<<"error"<<endl;

 /**************find_end()查找最后匹配的字符串*****************************/
 char* s="executable.exe";
 char* suffix="exe";

 const int N=strlen(s);
 const int N_suf=strlen(suffix);

 char* location=find_end(s,s+N,suffix,suffix+N_suf);

 if(location!=s+N)
  cout<<location-s<<" "<<location<<endl;

 

 return 0;
}

一种基于LSH的时间子序列匹配查询算法 提出了一种基于LSH(locality sensitive hashing,局部敏感散列)算法处理时间子序列匹配问题的方法LSHSM。不同于FRM和DualMatch方法,该方法不需要对时间序列做DFT、DWT等特征变换,而是直接把序列看成高维数据点,利用LSH能处理高维数据的特性来查找相似时间子序列。实验采用3种不同的时间序列数据集,通过与线性扫描算法比较,验证了算法的有效性,性能有很大的提高。 立即下载

相关推荐

使用 FastAPI 构建高性能异步接口服务(含完整项目示例)

python复制编辑python复制编辑= 1: raise HTTPException(status_code=404, detail="用户不存在")特性FastAPI 支持情况类型注解✅自动文档✅异步支持✅ORM 集成✅(推荐 SQLModel)性能✅ 极高FastAPI 是你构建现代化、高性能 Python Web 应用的首选框架!

2501_92823525的博客 1302

匹配子序列问题

匹配子序列问题

weixin_51712663的博客 552

超大规模AI集群跨数据中心互联:Scale-Across技术实现与部署实践

分布式系统通过将计算任务分散到多个节点协同执行,实现算力的横向扩展。其核心原理在于网络通信、数据同步和资源调度机制的技术协同。在AI基础设施领域,分布式架构能有效突破单数据中心算力瓶颈,支撑万亿参数大模型训练。特别是面对长距离传输时延和带宽稳定性挑战,需要采用RDMA、确定性网络等关键技术。Scale-Across作为分布式系统的高级形态,通过跨地域多数据中心互联,构建逻辑统一的AI算力池,为超大规模AI训练和全球推理服务提供核心支撑。本文聚焦AI集群跨数据中心互联的技术路径,涵盖全栈优化、网络自治等实践方

chouxuyi9789的博客 400

字符串子序列匹配问题

题目给你长度为n的字符串L,给你q个长度为0~m的字符串b,让你判断每一个b是否是字符串L的子序列。(L和b长度小于1e5) 例题:Long Long Ago 有三种做法。最后一种能过。 一、最长公共子序列 比赛时看到这题,因为刚看了dp,就想用LCS来做,求每一个b与字符串L的最长公共子序列的长度,如果等于b的长度,就能判断为对。但空间虽然可以用滚动数组优化,时间复杂度为O(n*m),过不了。...

Stormjing的博客 2893

避开STM32中断优先级配置的坑:HAL_NVIC_SetPriority()参数你真的用对了吗?

本文深入解析STM32中断优先级配置中的关键问题,重点剖析HAL_NVIC_SetPriority()函数的正确使用方法。通过实际案例揭示优先级分组设置、抢占优先级与子优先级的区别,提供多中断系统中的优化策略和调试技巧,帮助开发者避免常见配置错误,提升系统稳定性。

weixin_42532938的博客 423

DSP28335学习笔记——McBSP配置为SPI

由于28335硬件外设上只有一个SPI接口,所以当SPI接口不够用时,可以将McBSP配置为SPI接口。 参考28335的数据手册,当DSP为主机时,配置McBSP为SPI所用到的接线如下图所示。 另外总结一些调试过程中的经验。 1.传输数据位数的确定 由RCR1寄存器中的RWDLEN1和XCR1寄存器中的XWDLEN1决定。分别对应着接受和发送的位数,在配置成SPI模式的时候,这

捕虫少年 1万+

匹配子序列--动态规划

leetcode 392 判断子序列 题目描述: 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。 示例1: s ="abc", t = "ahbgdc" 返回true 示例2: s

jump_into_zehe的博客 1219

Jetson Orin NX系统克隆术:如何快速备份与还原你的开发环境(附完整命令行)

本文详细介绍了Jetson Orin NX系统克隆的完整流程,这是一种超越简单备份的完整镜像方案。通过命令行操作,可实现开发环境(包括引导程序、内核、根文件系统及所有配置)的快速备份与还原,确保批量部署时环境的完全一致性与高效性,尤其适合机器人、边缘AI等项目的团队协作。

weixin_29191081的博客 158

关于子序列匹配的算法题经验总结

是我比较讨厌的题,Java虽然有很多字符串的方法来帮忙解决,但我经常记不住各个方法具体的参数跟作用只记得大概的用法,平时开发的时候会比较给力,在算法题碰见我是比较讨厌的,当然主要还是怪我自己懒,不去记忆。这个类型是很多公司都喜欢的题,做过几家笔试发现基本上都有这些类型的题,可能是因为太经典了吧。

闪光桐人的博客 732

CDD数据库文件制作(三)——服务配置(0x10)

根据诊断调查表进行每一步配置的详细操作,与背后逻辑解释 1.会话切换配置 1.1.根据诊断调查表进行信息提取(0x1001) 1.2.会话转换配置(0x1001) 1.3.根据诊断调查表进行信息提取(0x1002) 1.4.会话转换配置(0x1002) 1.5.根据诊断调查表进行信息提取(0x1003) 1.6.会话转换配置(0x1003) 1.7.会话切换配置完成后效果图 2.安全等级配置信息提取 2.1.安全访问配置(0x1001) 2.2.安全访问配置(0x1002) 2.3.安全访问配置(0x100

LOVE135149的博客 5838

多个linux系统安装到一块硬盘(Kylin+UOS+ubuntu)

之前写过一篇类似的文档,笔者把kylin和UOS安装在一块硬盘上上一篇的文档地址多个linux系统安装到一块硬盘(Kylin+UOS)_银河麒麟系统和uos安装成双系统-优快云博客本次记录的是三个系统到一块硬件上银河麒麟:Kylin-Desktop-V10-SP1-Release-2107-arm64统信:uniontechos-desktop-20-professional-1050-arm64乌班图:ubuntu-22.04.5-live-server-arm64。

aggs1990的专栏 570

C++ STL(3):子序列匹配

#include &lt;iostream&gt; #include &lt;algorithm&gt; #include &lt;cstring&gt; bool eq_nosign(int x, int y){return abs(x) == abs(y);} void lookup(int *first, int *last, size_t nCount, int val) {     ...

caychen的博客 1483

【VTK】VTK中的光标样式

本文分享VTK中的光标设置相关内容技术,希望对各位小伙伴有所帮助!

qq_40041064的博客 1931

C++STL之查找子序列的算法

//----------------------------------------------------------------------------------------  //      Desc:       STL search() used in vector container and struct data  //      Author:     spring brothe...

sinat_38183777的博客 3880

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

简单的程序诠释C++ STL算法系列之十二:find_end

C++STL的非变易算法(Non-mutating algorithms)是一组不破坏操作数据的模板函数,用来对序列数据进行逐个处理、元素查找、子序列搜索、统计和匹配。 find_end算法在一个序列中搜索出最后一个与另一序列匹配的子序列。有如下两个函数原型,在迭代器区间[first1, last1)中搜索出与迭代器区间[first2, last2)元素匹配的子序列,返回首元素的迭代器或las...

huobengluantiao8 167

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

PAT程序设计考题——甲级1045 (最长不下降子序列) C++实现

传送门

辛巴爱喝星巴克的博客 347

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

STL非变易算法 - STL算法

欢迎访问我的新博客:http://www.milkcu.com/blog/ 原文地址:http://www.milkcu.com/blog/archives/1394600460.html 原创:STL非变易算法 - STL算法 作者:MilkCu(http://blog.youkuaiyun.com/milkcu) 本文地址:http://blog.youkuaiyun.com/milkcu/artic...

weixin_30471561的博客 122

C++ STL非更易型算法 查找第一个子区间search使用方法

返回[_First,_Last)区间内与[_First2,_Last2)区间完全吻合的第一个子区间内的第一元素位置,子区间内的元素必须完全等于[_First2,_Last2)的元素 返回[_First,_Last)区间内与[_First2,_Last2)区间完全吻合的第一个子区间内的第一元素位置,子区间内的元素必须造成_Pred(elem,searchElem)结果为true. 如果没有找到匹...

qq_44800780的博客 216

NC17508 指纹锁

该程序实现了一个基于距离k的集合操作系统,支持添加、删除和查询元素。使用map或set数据结构存储元素,通过lower_bound和upper_bound快速定位满足条件的元素范围。添加元素时检查是否存在距离不超过k的现有元素;删除时移除指定范围内的所有元素;查询时判断是否存在符合条件的元素。两种实现方式(map和set)逻辑相同,但底层数据结构不同,均能高效处理批量操作。

2301_79993142的博客 403

STL 中关系相关算法总结

STL 中关系相关算法总结

编程猿来如此 556

Generic Programming and the STL笔记2--“不改变操作对象之内容”的算法

“不改变操作对象之内容”的算法 1 线性查找 template InputIterator find(InputIterator first, InputIterator last, const EqualityComparable &value);

piaoshi000的专栏 456

find_end详解

函数功能:查找在父序列中最后匹配的子序列. find_end这个函数比较特殊一点,说起特殊并不是指其功能的特殊,而是其命名的特殊. 我们知道find系列算法是查找指定值的函数(单个值),而search系列则是查找”子系列”算法.但是Nicolai M.Josuttis在书里面也介绍到了原因:它说是因为这些算法并非早起STL的部分.这可能就是需要C++标准委员会商榷的一部分了.但是话又说回来,如果按

sunliangyuan的专栏 3728

stl算法-search

#ifndef ALGOSTUFF_HPP #define ALGOSTUFF_HPP #include #include #include #include #include #include #include #include #include #include using namespace std; template void PRINT_ELEMENTS(con

学习,思考,记录 488

C++之STL算法使用参考

【代码】C++之STL算法使用参考。

陈小陈的博客 313

非变易算法 - STL之算法

摘要:C++ STL标准模板库在数据结构和算法的实践领域发挥着重要作用,极大的提高了开发效率。STL的三大组成部分为容器、迭代器、算法,本文主要讲解STL算法中的非变易算法。本文从实践的角度简单介绍了一下相关函数的使用。 引言 C++ STL的非变易算法(Non-mutating algorithms)是一组不破坏函数数据的模板函数,用来...

weixin_33810006的博客 89
上一篇: C++ STL线性查找
下一篇: C++ STL 计算问题
liusoftware5
博客等级 码龄16年 1粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值