AcWing 2816. 判断子序列

文章目录

  • AcWing 2816. 判断子序列
  • 我的思路
    • CODE
  • 欣赏大神代码
  • 给点思考


AcWing 2816. 判断子序列

题目链接:https://www.acwing.com/activity/content/problem/content/2981/

描述


我的思路

  • 直接硬套模版,把两个指针两层循环写上
  • 如果匹配,记录数组更新
  • 遍历记录数组,如果有未标记的值,说明非子串

CODE

#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;int n, m;
const int N = 1e5 + 10;
int a[N], b[N], cnt[N];int main()
{cin >> n >> m;for(int i = 0; i < n; ++i) scanf("%d", &a[i]);for(int i = 0; i < m; ++i) scanf("%d", &b[i]);for(int i = 0, j = 0; i < n; ++i){while(j < m && a[i] != b[j]){j++;}if(j < m && a[i] == b[j]){		// 这个判断中 j < m 非常必要cnt[i]++;j++;}}for(int i = 0; i < n; ++i){if(cnt[i] == 0){puts("No");return 0;}}puts("Yes");
}
  • j < m i f if if 判断中不可缺少,当我们走到b[]最后一位没有匹配成功时,j会自加到j == m,那么b[j] == 0,是数组越界后的第一位'\0',如果a[i] == 0那么就会匹配成功,尤其是在最后一位时

欣赏大神代码

#include <iostream>
#include <cstring>using namespace std;const int N = 100010;int n, m;
int a[N], b[N];int main()
{scanf("%d%d", &n, &m);for (int i = 0; i < n; i ++ ) scanf("%d", &a[i]);for (int i = 0; i < m; i ++ ) scanf("%d", &b[i]);int i = 0, j = 0;while (i < n && j < m){if (a[i] == b[j]) i ++ ;j ++ ;}if (i == n) puts("Yes");else puts("No");return 0;
}作者:yxc
链接:https://www.acwing.com/activity/content/code/content/589289/
来源:AcWing
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 简洁优雅
  • 舍弃了生搬硬套模板,只用一重循环,匹配成功指针就走,未成功则不动,最后看有没有到结尾,没用到标记数组,太太太elegant

给点思考

  • 对于这种寻不连续串,像这样一重循环就能搞定
  • 而对于寻连续串,还得用板子来锁定串的左右边界,例如洛谷P1449 后缀表达式、AcWing 3302. 表达式求值,这两个表达式求值题目中在字符串中寻找连续的数字串,还是用的板子

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/181058.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

汽车内饰灯不亮问题修复

车内饰灯不亮问题修复 最近换后座阅读灯火光闪了一下&#xff0c;保险丝短路&#xff0c;导致车内所有灯光&#xff0c;包括前后座阅读灯、后备箱灯都不亮了。 因为是所有灯都不亮&#xff0c;所以排除灯泡问题&#xff0c;网上查了下大概率是保险丝烧了。于是查了自己更换保…

idea下载与安装,以及创建一个项目写HelloWorld

1.idea下载 Download IntelliJ IDEA – The Leading Java and Kotlin IDE (jetbrains.com) Ultimate为旗舰版&#xff0c;功能全面&#xff0c;插件丰富&#xff0c;按年收费。 Community为社区版&#xff0c;免费试用&#xff0c;功能相对而言不是很丰富&#xff0c;但是不影…

windows 映射 webdav 为本地磁盘

参考 https://docs.qnap.com/operating-system/qts/4.5.x/zh-cn/GUID-31D5B05F-F29E-4D61-9758-C8CF839C14FD.html WebDAV 允许用户访问和管理远程服务器上的文件。您可以通过 WebDAV 将 Windows 计算机上的共享文件夹装载为网络磁盘。 在 Windows 计算机上&#xff0c;打开“…

Linux系统---环境变量+内核进程调度队列(选学)

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C/C》 键盘敲烂&#xff0c;年薪百万&#xff01; 一、环境变量 1.基本概念 环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数&#xff0c;如: 我们在编写CI/…

Python 分解IP段获取所有IP(子网掩码)

需求 192.168.1.0/24,192.168.2.1-192.168.2.254,192.168.3.3 IP段格式已 "," 分割&#xff0c;获取所有IP 注意 1. 判断 IP 是否合规 2. 去除多余的字符&#xff0c;例如空格、换行符 3. 去重 代码 import re import ipaddressdef isIP(ip):p re.compile(^((…

JS调用Android原生相机设置

1、定义 private ValueCallback<Uri> mUploadMessage;public ValueCallback<Uri[]> uploadMessage;private Uri imageUri; 2、webview 设置 webView.setWebChromeClient(new WebChromeClient(){// For 3.0 Devices (Start)// onActivityResult attached before co…

谷歌要如何优化引流?谷歌引流有什么优势?

在谷歌引流上想要写出高质量的内容是不言而喻的&#xff0c;但如果你希望为关键字排名&#xff0c;那么写高质量的内容是很重要的。如果没有人发现你的内容有用&#xff0c;那么世界上所有的页面优化都不会对你有帮助。谷歌有很多排名因素&#xff0c;可以帮助他们决定你的页面…

考虑区域多能源系统集群协同优化的联合需求侧响应模型程序代码!

本程序参考中国电机工程学报论文《考虑区域多能源系统集群协同优化的联合需求侧响应模型》&#xff0c;文章使用关系矩阵来表示电、热、气的耦合关系&#xff0c;使用NSGA2方法对多目标优化方法进行求解&#xff0c;文章中考虑环境因素是目前研究的热点。程序中算例丰富&#x…

对支付宝进行测试用例分析

支付宝作为一款广泛使用的支付工具&#xff0c;其功能和性能的稳定性和可靠性对于用户体验至关重要。因此&#xff0c;对其进行测试用例分析是非常必要的。以下是一些可能的测试用例&#xff1a; 功能测试&#xff1a;测试支付宝各项功能的完整性和正确性&#xff0c;例如转账、…

LINUX入门篇【11】---进程篇【3】---进程优先级,进程切换,进程调度

前言&#xff1a; 有了前面知识点的铺垫&#xff0c;本篇我们将围绕进程的三个方面来展开&#xff0c;即进程优先级&#xff0c;进程切换以及进程调度的问题&#xff0c;这里的进程调度其实本质就是CPU是如何去调度进程的。 进程优先级&#xff1a; 优先级的概念&#xff1a…

[Linux ] sed文本处理和免交互

一、sed 1.1 sed是什么 sed 是一种流编辑器&#xff08;stream editor&#xff09;&#xff0c;用于对文本数据进行文本转换和处理。它通常被用于在命令行中执行文本编辑任务&#xff0c;可以对输入的文本进行搜索、替换、删除等操作&#xff0c;并将结果输出。sed 是一个非交…

maven repository的官方网址

1.maven仓库官方地址&#xff1a; https://mvnrepository.com/

[个人笔记] VMware vCenter的CLI笔录

VMware虚拟化 - CLI笔录 VMware vCenter的CLI笔录 VMware虚拟化 - CLI笔录VMware vCenter的CLI笔录vCenter 6.7 Shell service-control服务管理的CLIvCenter 6.7 上传文件到ShellvCenter 6.7 Shell iptables防火墙管理vCenter 6.7 Shell 替换计算机SSL证书全流程other cli VMwa…

mgmt接口调用

mgmt接口调用 在bluetoothd启动是&#xff0c;会进行初始化&#xff0c;在这里会获取mgmt句柄来进行和内核之间的通信 8677 int adapter_init(void) 8678 { 8679 dbus_conn btd_get_dbus_connection();/*获取dbus连接后的句柄*/ 8680 /*获取mgmt句柄&#xff0c;用于…

10.点赞 + 我收到的赞

1.点赞 点赞&#xff1a;支持对帖子、评论点赞&#xff1b;第1次点赞&#xff0c;第2次取消点赞首页点赞数量&#xff1a;统计帖子的点赞数量详情页点赞数量&#xff1a;统计点赞数量、显示点赞状态 1.1 生成 redis 工具类 将数据存入到 redis 中&#xff0c;以 key 为关键&…

Spring Boot 整合RabbitMQ

系列文章目录 第一章 Java线程池技术应用 第二章 CountDownLatch和Semaphone的应用 第三章 Spring Cloud 简介 第四章 Spring Cloud Netflix 之 Eureka 第五章 Spring Cloud Netflix 之 Ribbon 第六章 Spring Cloud 之 OpenFeign 第七章 Spring Cloud 之 GateWay 第八章 Sprin…

Nginx访问控制

Nginx的location块用于基于接收到的请求字符串(例如:www.test.com/uri-string)对虚拟主机之外的部分进行匹配,并对特定的请求进行处理。它可以用于地址重定向、数据缓存、应答控制等功能,并且还可以配置许多第三方模块。 location块的基本格式: location [= | ~ | ~*] …

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑不确定性的火电发电商现货-深度调峰市场优化决策》

标题涉及到电力行业的领域&#xff0c;尤其是火电发电商在电力市场中面对深度调峰需求时的决策问题。下面是对标题的解读&#xff1a; 考虑不确定性&#xff1a; 这指的是在制定优化决策时&#xff0c;考虑到环境的不确定性&#xff0c;可能包括但不限于电力市场的价格波动、发…

算法—双指针

双指针算法可以帮忙把时间复杂度降低一个维度&#xff0c;即原本O&#xff08;n2&#xff09;降为O(n)&#xff1b;将O(n)降为O(1) 移动零 移动零 题目解析 将所有0移动到末尾保持非0元素相对顺序对数组进行原地操作&#xff08;不开辟额外空间&#xff09; 算法原理 数组…

等保——密评技术要求

密评简介 密评定义&#xff1a;全称商用密码应用安全评估, 是指对采用商用密码技术、产品和服务集成建设的网络和信息系统密码应用的合规性、正确性、有效性进行评估。密评对象&#xff1a;重要信息系统、关键信息基础设施、网络安全等保三级及以上的系统。评测依据&#xff1…