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

【武汉理工大学第四届ACM校赛】copy

copy

  • 题目描述
  • 代码
  • 代码解释:

链接:https://ac.nowcoder.com/acm/contest/108683/E

题目描述

小s苦于在不同的窗口之间复制粘贴, 于是他突发奇想,把所有要复制的内容都复制到了一个剪贴板中,但他突然发现由于他复制的来源太多,他现在不知道该怎么粘贴了。
小s使用的剪贴板会存储最近复制的 n 条信息,每次粘贴其中的一条会使这条变为最新的,如在依次复制了1,2,3后,使用copy 2则会粘贴2, 同时剪切板内容变为2, 1, 3,
保证剪贴板中内容不同。
请输出一个粘贴的过程,使得粘贴过后的文本内容(每次粘贴后自动换行),和给定的文件文本内容一致。
输入描述:
第一行输入一个整数 n, 表示 剪切板中有 n 行数据
接下来 n 行,每行输入一个字符串 si
表示剪切板中数据的内容
第 n+2 行输入一个整数 m,表示文件共有 m 行
接下来m 行,每行输入一个字符串ti表示文件中的内容
输出描述:
第一行输出需要在这个文件中进行操作的数量
之后每行输出一个整数,表示要粘贴剪切板中的第几行
示例1
输入
3
a
b
c
3
c
b
a
输出
3
3
3
3
备注:
n,m≤1000
∣si∣,∣ti ∣≤1000
样例中剪贴板初始内容为a,b,c粘贴c后变为c,a,b
所以再粘贴b为粘贴剪贴板第三行的内容

代码

import java.util.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();String[] clipboard = new String[n];for (int i = 0; i < n; i++) {clipboard[i] = sc.next();}int m = sc.nextInt();String[] target = new String[m];for (int i = 0; i < m; i++) {target[i] = sc.next();}List<Integer> operations = new ArrayList<>();List<String> currentClipboard = new ArrayList<>();// 初始化剪贴板for (int i = 0; i < n; i++) {currentClipboard.add(clipboard[i]);}for (String s : target) {// 检查目标字符串是否在剪贴板中if (!currentClipboard.contains(s)) {System.out.println(-1);return;}int index = currentClipboard.indexOf(s);operations.add(index + 1);// 更新剪贴板,将被粘贴的元素移到最前面String temp = currentClipboard.remove(index);currentClipboard.add(0, temp);}System.out.println(operations.size());for (int op : operations) {System.out.println(op);}}
}

代码解释:

  1. 输入处理:读取剪贴板的大小n和初始内容,以及目标文件的行数m和内容。
  2. 初始化剪贴板:将剪贴板的初始内容存储在一个List中。
  3. 生成操作序列:
    遍历目标文件的每一行内容。
    检查该内容是否在当前剪贴板中,如果不存在,输出-1并退出。
    如果存在,记录该内容在剪贴板中的位置(索引+1,因为题目要求输出从1开始的索引)。
    更新剪贴板,将被粘贴的内容移到最前面。
  4. 输出结果:输出操作的数量和具体的操作序列。
    这段代码使用List来模拟剪贴板的行为,通过remove和add操作来实现将被粘贴的元素移到最前面。这样可以确保每次操作都符合剪贴板的规则,并且生成的操作序列能够正确生成目标文件的内容。

相关文章:

【武汉理工大学第四届ACM校赛】copy

copy 题目描述代码代码解释&#xff1a; 链接&#xff1a;https://ac.nowcoder.com/acm/contest/108683/E 题目描述 小s苦于在不同的窗口之间复制粘贴&#xff0c; 于是他突发奇想&#xff0c;把所有要复制的内容都复制到了一个剪贴板中&#xff0c;但他突然发现由于他复制的…...

植物大战僵尸杂交版v3.6最新版本(附下载链接)

B站游戏作者潜艇伟伟迷于4月19日更新了植物大战僵尸杂交版3.6版本&#xff01;&#xff01;&#xff01;&#xff0c;有b站账户的记得要给作者三连关注一下呀&#xff01; 不多废话下载链接放上&#xff1a; 夸克网盘链接&#xff1a;&#xff1a;https://pan.quark.cn/s/1af9b…...

【Ansible】批量管理 Windows自动化运维

一&#xff0c;前期准备 1&#xff0c;控制端&#xff08;Linux&#xff09;的要求 Ansible可以在安装了Python 2&#xff08;2.7版&#xff09;或Python 3&#xff08;3.5及更高版本&#xff09;的任何机器上运行。控制端计算机不支持Windows。 2&#xff0c;客户端&#x…...

【源码】【Java并发】【ThreadLocal】适合中学者体质的ThreadLocal源码阅读

&#x1f44b;hi&#xff0c;我不是一名外包公司的员工&#xff0c;也不会偷吃茶水间的零食&#xff0c;我的梦想是能写高端CRUD &#x1f525; 2025本人正在沉淀中… 博客更新速度 &#x1f44d; 欢迎点赞、收藏、关注&#xff0c;跟上我的更新节奏 &#x1f4da;欢迎订阅专栏…...

背包问题模板

文章目录 01背包题意思路代码优化 完全背包题意思路代码优化 多重背包题意思路代码优化 分组背包题意思路代码 01背包 特点&#xff1a;每件物品最多只能用一次 01背包问题 题意 给出每件物品的体积v,价值w,求解能装入背包的的物品的最大价值&#xff0c;并且每件物品只能选一…...

Redis 处理读请求

在前文“Redis 接收连接”中&#xff0c;Redis 将接收的客户端连接加入了 epoll 中监听&#xff0c;同时还设置了读事件处理器 connSocketEventHandler。 假设现在客户端向 Redis 发来一条 set key value 命令。 事件循环 aeProcessEvents 在事件循环 aeProcessEvents 中会调…...

Sentinel源码—8.限流算法和设计模式总结二

大纲 1.关于限流的概述 2.高并发下的四大限流算法原理及实现 3.Sentinel使用的设计模式总结 3.Sentinel使用的设计模式总结 (1)责任链模式 (2)监听器模式 (3)适配器模式 (4)模版方法模式 (5)策略模式 (6)观察者模式 (1)责任链模式 一.责任链接口ProcessorSlot 二.责…...

VulnHub-DarkHole_1靶机渗透教程

VulnHub-DarkHole_1靶机渗透教程 1.靶机部署 [Onepanda] Mik1ysomething 靶机下载&#xff1a;https://download.vulnhub.com/darkhole/DarkHole.zip 直接使用VMware打开就行 导入成功&#xff0c;打开虚拟机&#xff0c;到此虚拟机部署完成&#xff01; 注意&#xff1a…...

Keil MDK‑5 中使用 GNU ARM GCC 的 -Wno-* 选项屏蔽编译警告

在项目编译过程中&#xff0c;我们常常会遇到许多警告提示&#xff1b;而在有些情况下&#xff0c;当我们已经了解这些警告的原因时&#xff0c;可以选择忽略它们&#xff0c;从而减少干扰&#xff0c;集中精力修复其他更重要的问题。 一、添加屏蔽警告的编译选项 &#xff08…...

边缘计算全透视:架构、应用与未来图景

边缘计算全透视&#xff1a;架构、应用与未来图景 一、产生背景二、本质三、特点&#xff08;一&#xff09;位置靠近数据源&#xff08;二&#xff09;分布式架构&#xff08;三&#xff09;实时性要求高 四、关键技术&#xff08;一&#xff09;硬件技术&#xff08;二&#…...

爬虫学习——下载文件和图片、模拟登录方式进行信息获取

一、下载文件和图片 Scrapy中有两个类用于专门下载文件和图片&#xff0c;FilesPipeline和ImagesPipeline&#xff0c;其本质就是一个专门的下载器&#xff0c;其使用的方式就是将文件或图片的url传给它(eg:item[“file_urls”])。使用之前需要在settings.py文件中对其进行声明…...

路由器转发规则设置方法步骤,内网服务器端口怎么让异地连接访问的实现

在路由器上设置端口转发&#xff08;Port Forwarding&#xff09;可以将外部网络流量引导到特定的局域网设备&#xff0c;这对于需要远程访问服务器、摄像头、游戏主机等设备非常有用。 登录路由器管理界面&#xff0c;添加端口转发规则让外网访问内网的实现教程分享。以下是设…...

MQ底层原理

RabbitMQ 概述 RabbitMQ 是⼀个开源的⾼性能、可扩展、消息中间件&#xff08;Message Broker&#xff09;&#xff0c;实现了 Advanced Message Queuing Protocol&#xff08;AMQP&#xff09;协议&#xff0c;可以帮助不同应⽤程序之间进⾏通信和数据交换。RabbitMQ 是由 E…...

本地部署DeepSeek-R1模型接入PyCharm

以下是DeepSeek-R1本地部署及接入PyCharm的详细步骤指南,整合了视频内容及官方文档核心要点: 一、本地部署DeepSeek-R1模型 1. 安装Ollama框架 ​下载安装包 访问Ollama官网(https://ollama.com/download)Windows用户选择.exe文件,macOS用户选择.dmg包。 ​安装验证 双击…...

jvm-描述符与特征签名的区别

在Java虚拟机&#xff08;JVM&#xff09;中&#xff0c;存储的是方法签名&#xff0c;而不是仅仅方法描述符。方法签名包含了方法的参数类型和返回值类型的信息&#xff0c;而方法描述符通常指的是仅包含参数类型的那部分信息。为了更清晰地理解这两者的区别以及它们如何在JVM…...

Java基于SpringBoot的企业车辆管理系统,附源码+文档说明

博主介绍&#xff1a;✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&…...

QT调用ffmpeg库实现视频录制

可以通过QProcess调用ffmpeg命令行,也可以直接调用ffmpeg库,方便。 调用库 安装ffmpeg ffmpeg -version 没装就装 sudo apt-get update sudo apt-get install ffmpeg sudo apt-get install ffmpeg libavdevice-dev .pro引入库路径,引入库 LIBS += -L/usr/lib/aarch64-l…...

百度 Al 智能体心响 App 上线

百度 AI 智能体心响 App 于 2025 年 4 月 17 日低调上线安卓应用市场&#xff0c;4 月 22 日正式登陆各大安卓应用市场。以下是对这款应用的详细介绍&#xff1a; 产品定位&#xff1a;这是一款以 “AI 任务完成引擎” 为核心的手机端超级智能体产品&#xff0c;定位为 “复杂任…...

进阶篇 第 2 篇:自相关性深度解析 - ACF 与 PACF 图完全指南

进阶篇 第 2 篇&#xff1a;自相关性深度解析 - ACF 与 PACF 图完全指南 (图片来源: Negative Space on Pexels) 欢迎来到进阶系列的第二篇&#xff01;在上一篇&#xff0c;我们探讨了更高级的时间序列分解技术和强大的指数平滑 (ETS) 预测模型。ETS 模型通过巧妙的加权平均捕…...

【Java面试笔记:基础】7.int和Integer有什么区别?

在Java中&#xff0c;int和Integer虽然都用于表示整数值&#xff0c;但它们在本质、用法和特性上有显著差异。 1. int 和 Integer 的区别 int&#xff1a; 原始数据类型&#xff1a;int 是 Java 的 8 个原始数据类型之一&#xff0c;用于表示整数。性能优势&#xff1a;直接存…...

鸿蒙移动应用开发--渲染控制实验

任务&#xff1a;使用“对象数组”、“ForEach渲染”、“Badge角标组件”、“Grid布局”等相关知识&#xff0c;实现生效抽奖卡案例。如图1所示&#xff1a; 图1 生肖抽奖卡实例图 图1(a)中有6张生肖卡可以抽奖&#xff0c;每抽中一张&#xff0c;会通过弹层显示出来&#xf…...

AI代表企业签订的合同是否具有法律效力?

AI代表企业签订的合同是否具有法律效力&#xff1f; 首席数据官高鹏律师团队编著 在数字经济高速发展的今天&#xff0c;人工智能&#xff08;AI&#xff09;技术已广泛应用于商业活动&#xff0c;包括合同起草、审查甚至签署环节。然而&#xff0c;AI代表企业签订的合同是否具…...

安宝特分享|AR智能装备赋能企业效率跃升

AR装备开启智能培训新时代 在智能制造与数字化转型浪潮下&#xff0c;传统培训体系正面临深度重构。安宝特基于工业级AR智能终端打造的培训系统&#xff0c;可助力企业构建智慧培训新生态。 AR技术在不同领域的助力 01远程指导方面 相较于传统视频教学的单向输出模式&#x…...

SpringCloud组件—Eureka

一.背景 1.问题提出 我们在一个父项目下写了两个子项目&#xff0c;需要两个子项目之间相互调用。我们可以发送HTTP请求来获取我们想要的资源&#xff0c;具体实现的方法有很多&#xff0c;可以用HttpURLConnection、HttpClient、Okhttp、 RestTemplate等。 举个例子&#x…...

模型 螃蟹效应

系列文章分享模型&#xff0c;了解更多&#x1f449; 模型_思维模型目录。个体互钳&#xff0c;团队难行。 1 螃蟹效应的应用 1.1 教育行业—优秀教师遭集体举报 行业背景&#xff1a;某市重点中学推行绩效改革&#xff0c;将班级升学率与教师奖金直接挂钩&#xff0c;打破原…...

符号速率估计——小波变换法

[TOC]符号速率估计——小波变换法 一、原理 1.Haar小波变换 小波变换在信号处理领域被成为数学显微镜&#xff0c;不同于傅里叶变换&#xff0c;小波变换可以观测信号随时间变换的频谱特征&#xff0c;因此&#xff0c;常用于时频分析。   当小波变换前后位置处于同一个码元…...

【架构】ANSI/IEEE 1471-2000标准深度解析:软件密集型系统架构描述推荐实践

引言 在软件工程领域&#xff0c;架构设计是确保系统成功的关键因素之一。随着软件系统日益复杂化&#xff0c;如何有效描述和沟通系统架构成为了一个亟待解决的问题。ANSI/IEEE 1471-2000&#xff08;正式名称为"推荐软件密集型系统架构描述实践"&#xff09;应运而…...

python兴趣匹配算法

python兴趣匹配算法&#xff0c;用于推荐好友&#xff0c;短视频推荐等等领域 功能列表&#xff1a; 1.用户类的定义&#xff0c;存储用户的基本信息和兴趣。 2.计算两个用户之间兴趣的匹配分数&#xff0c;比较每一位是否相同。 3.根据匹配分数对候选人进行排序。 4.提供交互…...

每日算法-250422

每日算法 - 250422 1561. 你可以获得的最大硬币数目 题目 思路 贪心 解题过程 根据题意&#xff0c;我们想要获得最大的硬币数目。每次选择时&#xff0c;有三堆硬币&#xff1a;最大的一堆会被 Alice 拿走&#xff0c;最小的一堆会被 Bob 拿走&#xff0c;剩下的一堆&#xf…...

【MATLAB第116期】基于MATLAB的NBRO-XGBoost的SHAP可解释回归模型(敏感性分析方法)

【MATLAB第116期】基于MATLAB的NBRO-XGBoost的SHAP可解释回归模型&#xff08;敏感性分析方法&#xff09; 引言 该文章实现了一个可解释的回归模型&#xff0c;使用NBRO-XGBoost&#xff08;方法可以替换&#xff0c;但是需要有一定的编程基础&#xff09;来预测特征输出。该…...