小苯的IDE括号问题(CD) -----牛客小白月赛87(双链表)
C题:C-小苯的IDE括号问题(easy)_牛客小白月赛87 (nowcoder.com)
D题: D-小苯的IDE括号问题(hard)_牛客小白月赛87 (nowcoder.com)


C题代码:
#include<bits/stdc++.h>using namespace std;const int N = 2e5+10;
int n,k;
int l[N],r[N];//删除操作
void remove(int x)
{r[l[x]] = r[x];l[r[x]] = l[x];
}int main()
{cin.tie(nullptr)->ios::sync_with_stdio(false);cin >> n >> k;string s;cin >> s;//做一个标记头尾哨子s = "L" + s + "R";int pos = 0; //标记位置,用来去找鼠标I的位置for(int i=1;i<s.size();i++){if(s[i] == 'I'){pos = i;break;}}r[0] = s.size()-1,l[s.size()-1] = 0;for(int i=1;i<s.size();i++){//插入操作(插入指向左右指针)int left = i-1,right = r[i-1];l[i] = left,r[i] = right;l[right] = i,r[left] = i;}while(k--){string str;cin >> str;if(str == "backspace"){if(s[l[pos]] == '(' && s[r[pos]] == ')'){remove(l[pos]);remove(r[pos]);}else{if(s[l[pos]] == 'L') continue;remove(l[pos]);}}else{if(s[r[pos]] == 'R') continue;remove(r[pos]);}}for(int i=r[0];i!=s.size()-1;i=r[i])cout << s[i];return 0;
}
D题代码:
#include<bits/stdc++.h>using namespace std;const int N = 2e5+10;
int l[N],r[N];
int n,k;void remove(int x)
{r[l[x]] = r[x];l[r[x]] = l[x];
}int main()
{cin.tie(nullptr)->ios::sync_with_stdio(false);cin >> n >> k;string s;cin >> s;s = "L" + s + "R";int pos = 0;for(int i=1;i<=n;i++){if(s[i] == 'I'){pos = i;break;}}//这里对于C题换了一种写法,两种都可以r[0] = s.size()-1,l[s.size()-1] = 0;for (int i = 1; i <=n+1 ; i++) l[i] = i - 1, r[i - 1] = i;while(k--){string str;cin >> str;if(str == "backspace"){if(s[l[pos]] == '(' && s[r[pos]] == ')'){remove(l[pos]);remove(r[pos]);}else{if(s[l[pos]] == 'L') continue;remove(l[pos]);}}else if(str == "delete"){//注意:这块一定要仔细读题不要落条件,不写会超时(本人的错) if(s[r[pos]] == 'R') continue;remove(r[pos]);}else if(str == "->"){if(s[r[pos]] != 'R'){//交换只改变原数组,不改变双链表//删除只改变双链表,不改变原数组 int idx = r[pos];swap(s[idx],s[pos]);pos = idx; //一定要挪动一下pos的位置}}else{if(s[l[pos]]!='L'){int idx = l[pos];//这里交换原数组不会改变,双链表数组swap(s[idx],s[pos]);pos = idx;}}}//遍历链表for(int i=r[0];i!=s.size()-1; i=r[i])cout << s[i];return 0;
}
双链表 一定要多动手模拟,手动去做一下删除和插入操作,自己就会深有体会
相关文章:
小苯的IDE括号问题(CD) -----牛客小白月赛87(双链表)
C题:C-小苯的IDE括号问题(easy)_牛客小白月赛87 (nowcoder.com) D题: D-小苯的IDE括号问题(hard)_牛客小白月赛87 (nowcoder.com) C题代码: #include<bits/stdc.h>using namespace std…...
Redis如何修改key名称
点击上方蓝字关注我 近期出现过多次修改Redis中key名字的场景,本次简介一下如何修改Redis中key名称的方法。 1. 命令行方式修改在Redis中,可以使用rename命令来修改Key的名称。这个命令的基本语法如下: RENAME old_key new_key 在这里&#…...
浅谈redis之SDS
SDS 什么是SDSSDS结构len的作用free的作用buf的作用简单示例 SDS机制重新分配内存分配内存机制小于1MB情况大于1MB情况为什么这样分配 惰性释放内存 什么是SDS SDS:全名 simple dynamic string,意为简单动态字符串,作为redis里的一种数据结构…...
数据结构知识点总结-线性表(1)-线性表的定义、基本操作、顺序表表示
线性表 定义 线性表是具有相同数据类型的N(N>0)个元素的有限序列,其中N为表长,当N0时线性表是一张空表。 线性表的逻辑特征:每个非空的线性表都有一个表头元素和表尾元素,中间的每个元素有且仅有一个直…...
Spring Boot 手写starter!!!
原因:为什么要手写starter??? 原因:简化功能。 实例:以分页为例:写一个starter。 1.首先定义一个PageX注解。 Target({ElementType.METHOD}) Retention(RetentionPolicy.RUNTIME) Documented p…...
移动端自动化常用的元素定位工具 介绍
在移动端自动化测试和开发中,元素定位是非常关键的一步。以下是一些常用的工具和技术来帮助开发者或测试工程师在移动设备上定位元素: 1. **UiAutomator**: - **UiAutomator** 是 Android 官方提供的自动化测试框架。它可以用来编写测试脚本&…...
问题:Spark SQL 读不到 Flink 写入 Hudi 表的新数据,打开新 Session 才可见
博主历时三年精心创作的《大数据平台架构与原型实现:数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行,点击《重磅推荐:建大数据平台太难了!给我发个工程原型吧!》了解图书详情,…...
数学建模资料分享
1. 往年各赛题的优秀论文 可以用来参考一下论文是怎么写的。参考论文的结构,格式,思路等等。 链接:https://pan.baidu.com/s/1WG2t4-x9MjtaSgkq4ue5AQ?pwdnlzx 提取码:nlzx --来自百度网盘超级会员V4的分享 2.论文模板 链接&a…...
应用配置管理
一、Pod 配置管理 可变配置用 ConfigMap; 敏感信息用 Secret; 身份认证用 ServiceAccount 这几个独立的资源来实现的; 资源配置用 Resources; 安全管控用 SecurityContext; 前置校验用 InitContainers 这几个在 …...
This dependency was not found解决方法
问题如上(前端代码),我是引用js文件出的问题,无法找到api/userManage模块。 解决:没感觉哪有问题,把后面加了个/,就解决了,代表src目录,应该是目录和目录之间应该有/作为分割:...
基于SpringBoot的停车场管理系统
基于SpringBootVue的停车场管理系统的设计与实现~ 开发语言:Java数据库:MySQL技术:SpringBootMyBatis工具:IDEA/Ecilpse、Navicat、Maven 系统展示 前台首页 停车位 个人中心 管理员界面 摘要 摘要:随着城市化进程的…...
SQL库操作
1、创建数据库 概念 创建数据库:根据项目需求创建一个存储数据的仓库 使用create database 数据库名字创建 数据库层面可以指定字符集:charset/character set 数据库层面可以指定校对集:collate 创建数据库会在磁盘指定存放处产生一个文件夹 创建语法 create …...
物麒平台根据入耳出耳状态使能或禁止触摸按键实现方法
是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务,+群赠送语音信号处理降噪算法,蓝牙耳机音频,DSP音频项目核心开发资 料, 1 消息发送 2 消息处理 3 宏开关 4 代码 #include "app_main.h" #include &q…...
CAS5.3使用JPA实现动态注册服务
cas同时支持cas协议和OAuth2协议,官方默认是通过扫描json文件的形式注册客户端服务,但是此种方式需要重启服务才能生效,此次我们将使用JPA来完美实现动态注册服务,如果不知道cas如何部署,可以擦看之前的文章 cas-client基于CAS协议客户端搭建-CSDN博客 cas-server5.3自定义密…...
unity ui界面优化
优化一个比较复杂的界面,里面有多个rt和组件。 在初次打开这个界面的时候会发生1s多的卡顿,还是非常严重的。 分析 通过profiler分析 1.打开界面时卡顿。 分析:除了update和dotween相关逻辑,主要在于打开时的lua function调用…...
mysql-MVCC
一、基础概念 1. MVCC的含义 MVCC (Multiversion Concurrency Control),即多版本并发控制技术,它是通过读取某个时间点的快照数据, 来降低并发事务冲突而引起的锁等待, 从而提高并发性能的一种机制. MVCC 的实现,是通过保存数据…...
Sqli-labs靶场第9关详解[Sqli-labs-less-9]
Sqli-labs-Less-9 前言: SQL注入的三个条件: ①参数可控;(从参数输入就知道参数可控) ②参数过滤不彻底导致恶意代码被执行;(需要在测试过程中判断) ③参数带入数据库执行。&#…...
第3.5章:StarRocks数据导入——Broker Load
注:本篇文章阐述的是StarRocks-3.2版本的Broker Load导入机制 一、概述 Broker Load导入方式支持从HDFS类的外部存储系统(例如:HDFS、阿里OSS、腾讯COS、华为云OBS等),支持Parquet、ORC、CSV、及 JSON 四种文件格式&a…...
Linux之ACL权限chmod命令
一. chmod命令 chmod命令来自英文词组change mode的缩写,其功能是改变文件或目录权限的命令。默认只有文件的所有者和管理员可以设置文件权限,普通用户只能管理自己文件的权限属性。 设置权限时可以使用数字法,亦可使用字母表达式࿰…...
HBuilderX的特点
轻巧 仅10余M的绿色发行包(不含插件)极速 不管是启动速度、大文档打开速度、编码提示,都极速响应 C的架构性能远超Java或Electron架构vue开发强化 HBuilderX对vue做了大量优化投入,开发体验远超其他开发工具 详见小程序支持 国外开发工具没有对中国的小程…...
3分钟掌握FSearch:Linux系统文件搜索效率提升300%的终极方案
3分钟掌握FSearch:Linux系统文件搜索效率提升300%的终极方案 【免费下载链接】fsearch A fast file search utility for Unix-like systems based on GTK3 项目地址: https://gitcode.com/gh_mirrors/fs/fsearch 还在为Linux系统中寻找文件而烦恼吗ÿ…...
3个步骤彻底告别电脑风扇噪音:Windows平台最精细的风扇控制解决方案
3个步骤彻底告别电脑风扇噪音:Windows平台最精细的风扇控制解决方案 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHu…...
明日方舟MAA助手:如何用5分钟自动化你的每日游戏任务
明日方舟MAA助手:如何用5分钟自动化你的每日游戏任务 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: https://gitc…...
Spring Boot安全脚手架:openclaw-security-starter核心架构与实战指南
1. 项目概述:一个面向开发者的安全脚手架最近在梳理团队内部的安全开发规范时,发现一个普遍痛点:每个新项目启动,安全相关的配置总是东拼西凑,从依赖扫描、密钥管理到API安全策略,都得重新来一遍࿰…...
TikTokDownload完整指南:轻松下载无水印抖音内容
TikTokDownload完整指南:轻松下载无水印抖音内容 【免费下载链接】TikTokDownload 抖音去水印批量下载用户主页作品、喜欢、收藏、图文、音频 项目地址: https://gitcode.com/gh_mirrors/ti/TikTokDownload 抖音内容创作者和爱好者们,你们是否曾经…...
tchMaterial-parser:5分钟快速上手,轻松获取国家中小学智慧教育平台电子课本的完整指南
tchMaterial-parser:5分钟快速上手,轻松获取国家中小学智慧教育平台电子课本的完整指南 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载&#x…...
RPFM:重新定义全面战争MOD开发的工作流革命
RPFM:重新定义全面战争MOD开发的工作流革命 【免费下载链接】rpfm Rusted PackFile Manager (RPFM) is a... reimplementation in Rust and Qt6 of PackFile Manager (PFM), one of the best modding tools for Total War Games. 项目地址: https://gitcode.com/g…...
基于MCP协议连接AI与Postal邮件服务器的自动化实践
1. 项目概述:一个连接Postal与MCP的桥梁最近在折腾一些自动化工作流,发现很多内部系统的数据都通过Postal(一个开源的邮件服务器管理平台)来流转,而我又想用上新兴的模型上下文协议(MCP)来让AI助…...
UltimateStack:彻底解决Minecraft物品堆叠限制的终极指南
UltimateStack:彻底解决Minecraft物品堆叠限制的终极指南 【免费下载链接】UltimateStack A Minecraft mod,can modify ur item MaxStackSize (more then 64) 项目地址: https://gitcode.com/gh_mirrors/ul/UltimateStack 你是否曾经在Minecraft中为物品堆叠…...
Claude 代码在大型代码库中的运作方式:最佳实践与入门指南
How Claude Code works in large codebases: Best practices and where to start Claude 代码在大型代码库中的运作方式:最佳实践与入门指南 https://claude.com/blog/how-claude-code-works-in-large-codebases-best-practices-and-where-to-start The most succ…...
