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

L1-011 A-B(Java)

题目

本题要求你计算A−B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A−B。

输入格式:
输入在2行中先后给出字符串AB。两字符串的长度都不超过10的四次方,并且保证每个字符串都是由可见的ASCII码和空白字符组成,最后以换行符结束。
输出格式:
在一行中打印出AB的结果字符串。
输入样例:
I love GPLT!  It's a fun game!
aeiou
输出样例:
I lv GPLT!  It's  fn gm!

解题思路

  1. 这个题目的关键在于如何有效地检查和删除字符!我这边是标记B中的字符,你可以使用布尔数组或者HashSet,遍历B,将出现的字符在布尔数组或HashSet标记为true(HashSet不是标记为true,口语化是标记,其实是add而已)。
  2. 然后遍历A并创建StringBuilder,被布尔数组标记过的字符就不会被append进去(被hashet添加过的字符在进行contains时就不会被append)。

解题过程中遇到的问题

  1. 一开始我是用的HashSet,我以为运行超时是因为如果字符串A很长的话,遍历A时时间成本就会很高,所以我就改为了布尔数组,因为布尔数组访问时间为O(1),但是它比HashSet在空间上更加高效一点,而且是直接映射ASCII码。
  2. 问题的根本是Scanner scanner = new Scanner(System.in); 将其更改为BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

代码

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;/*** 最终优化版* 用BufferedReader和BufferedWriter:相比于Scanner和System.out.println,这些类在处理大量数据时更加高效。* 直接操作原始字符数组:减少对StringBuilder的依赖,直接在输入的字符数组上操作,减少了内存复制的开销。* 使用布尔数组而非整数数组:这可以减少内存占用,尽管在这种情况下影响可能不大。*/
public class Main {public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));char[] A = br.readLine().toCharArray();char[] B = br.readLine().toCharArray();boolean[] ascii = new boolean[128]; // 使用布尔数组而非整数数组for (char c : B) {ascii[c] = true;}int len = 0;for (char c : A) {if (!ascii[c]) {A[len++] = c; // 直接在原数组上操作}}bw.write(A, 0, len);bw.flush();bw.close();br.close();}
}
import java.util.HashSet;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* 写法二
*/
public class Main {public static void main(String[] args) throws IOException{BufferedReader br = new BufferedReader(new InputStreamReader(System.in));String A = br.readLine();String B = br.readLine();HashSet<Character> setB = new HashSet<>();for (char ch : B.toCharArray()) {setB.add(ch);}StringBuilder result = new StringBuilder();for (char ch : A.toCharArray()) {if (!setB.contains(ch)) {result.append(ch);}}System.out.print(result.toString());br.close();}
}

相关文章:

L1-011 A-B(Java)

题目 本题要求你计算A−B。不过麻烦的是&#xff0c;A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉&#xff0c;剩下的字符组成的就是字符串A−B。 输入格式&#xff1a; 输入在2行中先后给出字符串A和B。两字符串的长度都不超过10的四次方&#xff0c;并且…...

系列七、Ribbon

一、Ribbon 1.1、概述 Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具&#xff0c;是Netflix发布的一款开源项目&#xff0c;其主要功能是提供客户端的软件负载均衡算法和服务调用&#xff0c;Ribbon客户端组件提供一系列完善的配置项&#xff0c;例如&#xff1a…...

山东名岳轩印刷包装携专业包装袋盛装亮相2024济南生物发酵展

山东名岳轩印刷包装有限公司盛装亮相2024第12届国际生物发酵展&#xff0c;3月5-7日山东国际会展中心与您相约&#xff01; 展位号&#xff1a;1号馆F17 山东名岳轩印刷包装有限公司是一家拥有南北两个生产厂区&#xff0c;设计、制版、印刷&#xff0c;营销策划为一体的专业…...

BGP公认必遵属性——Next-hop(一)

BGP公认必遵属性共有三个&#xff0c;分别是&#xff1a;Next-hop、Origin、As-path&#xff0c;本期介绍Next-hop 点赞关注&#xff0c;持续更新&#xff01;&#xff01;&#xff01; Next-hop 华为BGP路由下一跳特点&#xff1a; 默认情况下传给EBGP邻居的BGP路由的下一跳…...

增强Wi-Fi信号的10种方法,值得去尝试

Wi-Fi信号丢失,无线盲区。在一个对一些人来说,上网和呼吸一样必要的世界里,这些问题中的每一个都令人抓狂。 如果你觉得你的Wi-Fi变得迟钝,有很多工具可以用来测试你的互联网速度。你还可以尝试一些技巧来解决网络问题。然而,如果你能获得良好接收的唯一方法是站在无线路…...

第十五章 ECMAScript6新增的常用语法

文章目录 一、声明关键字二、箭头函数三、解构赋值四、展开运算符五、对字符的补充六、Symbol七、对象的简写语法八、Set和Map九、for-of 一、声明关键字 ES6新增的声明关键字&#xff1a; let&#xff0c;const&#xff1a;声明变量class&#xff1a;声明类import&#xff0c…...

vulhub中的Apache SSI 远程命令执行漏洞

Apache SSI 远程命令执行漏洞 1.cd到ssi-rce cd /opt/vulhub/httpd/ssi-rce/ 2.执行docker-compose up -d docker-compose up -d 3.查看靶场是否开启成功 dooker ps 拉取成功了 4.访问url 这里已经执行成功了&#xff0c;注意这里需要加入/upload.php 5.写入一句话木马 &…...

MSB20M-ASEMI迷你贴片整流桥MSB20M

编辑&#xff1a;ll MSB20M-ASEMI迷你贴片整流桥MSB20M 型号&#xff1a;MSB20M 品牌&#xff1a;ASEMI 封装&#xff1a;UMSB-4 特性&#xff1a;贴片、整流桥 最大平均正向电流&#xff1a;2A 最大重复峰值反向电压&#xff1a;1000V 恢复时间&#xff1a;&#xff1…...

工程管理系统功能设计与实践:实现高效、透明的工程管理

在现代化的工程项目管理中&#xff0c;一套功能全面、操作便捷的系统至关重要。本文将介绍一个基于Spring Cloud和Spring Boot技术的Java版工程项目管理系统&#xff0c;结合Vue和ElementUI实现前后端分离。该系统涵盖了项目管理、合同管理、预警管理、竣工管理、质量管理等多个…...

【C#】网址不进行UrlEncode编码会存在一些问题

欢迎来到《小5讲堂》&#xff0c;大家好&#xff0c;我是全栈小5。 这是2024年第3篇文章&#xff0c;此篇文章是C#知识点实践序列文章&#xff0c;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 目录 前言数据丢失效果请求端代码接口端代码…...

深入Pandas(二):高级数据处理技巧

文章目录 系列文章目录引言时间序列分析可视化示例 高级数据分析技术分组与聚合操作时间序列分析 高级数据操作数据合并与重塑示例&#xff1a;数据合并merge示例&#xff1a;数据合并concat示例&#xff1a;数据重塑 - 透视表 高级索引技巧 结论 系列文章目录 Python数据分析…...

实验8 分析HTTP协议和DNS

实验8 分析HTTP协议和DNS 一、 实验目的及任务 熟悉并掌握wireshark的基本操作&#xff0c;了解网络协议实体间的交互以及报文交换。分析HTTP协议分析DNS协议 二、 实验设备 与因特网连接的计算机网络系统&#xff1b;主机操作系统为Windows&#xff1b;wireshark等软件。 …...

Talk | EMNLP 2023 最佳长论文:以标签为锚-从信息流动的视角分析上下文学习

本期为TechBeat人工智能社区第561期线上Talk。 北京时间1月4日(周四)20:00&#xff0c;北京大学博士生—王乐安的Talk已准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “以标签为锚-从信息流动的视角分析上下文学习”&#xff0c;介绍了他的团队在上下文学…...

2024年中国电子学会青少年编程等级考试安排的通知

各有关单位、全体考生: 中国电子学会青少年等级考试&#xff08;以下简称等级考试&#xff09;是中国电子学会为落实《全民科学素质行动规划纲要》&#xff0c;提升青少年电子信息科学素质水平而开展的社会化评价项目。等级考试自2011年启动以来&#xff0c;作为中国电子学会科…...

[足式机器人]Part3 机构运动学与动力学分析与建模 Ch00-2(2) 质量刚体的在坐标系下运动

本文仅供学习使用&#xff0c;总结很多本现有讲述运动学或动力学书籍后的总结&#xff0c;从矢量的角度进行分析&#xff0c;方法比较传统&#xff0c;但更易理解&#xff0c;并且现有的看似抽象方法&#xff0c;两者本质上并无不同。 2024年底本人学位论文发表后方可摘抄 若有…...

【亚马逊云科技】自家的AI助手 - Amazon Q

写在前面&#xff1a;博主是一只经过实战开发历练后投身培训事业的“小山猪”&#xff0c;昵称取自动画片《狮子王》中的“彭彭”&#xff0c;总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域&#xff0c;如今终有小成…...

网络安全—SSL安全访问应用

文章目录 网络拓扑部署CA服务器颁发证书开启Web服务安装IIS服务修改Web默认网页 申请Web证书前提准备申请文件生成申请web证书开始安装web证书 客户机访问web默认网站使用HTTP使用HTTPS 为客户机安装浏览器证书 环境&#xff1a;Windows Server 2003 网络拓扑 这里使用NAT还是…...

Qt5.14.2实现将html文件转换为pdf文件

文章目录 简介源码widget.cppwidget.uihtml文件演示效果简介 QPdfWriter是Qt框架中用于创建和写入PDF文件的类。它允许您在您的Qt应用程序中动态生成并输出PDF文档,以便进行打印、保存或导出。 QPdfWriter类提供了以下一些常用的函数和方法,可以让您创建和定制PDF文件: 构…...

Minecraft教程:使用MCSM面板搭建我的世界私服并实现远程联机

文章目录 前言1. 安装JAVA2. MCSManager安装3.局域网访问MCSM4.创建我的世界服务器5.局域网联机测试6.安装cpolar内网穿透7. 配置公网访问地址8.远程联机测试9. 配置固定远程联机端口地址9.1 保留一个固定tcp地址9.2 配置固定公网TCP地址9.3 使用固定公网地址远程联机 前言 Li…...

springboot学生成绩管理系统源码和论文

随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&#xff0c;各行各业相继进入信息管理时代&#xf…...

w20webshell之文件上传

1.什么是文件上传&#xff1f; 将本地文件传输到指定位置。2.什么是webshell 给恶意脚本提供运行环境3.文件上传所需要的条件 a.文件成功上传&#xff0c;未被删除 b.知道文件路径 c.文件所在系统支持脚本运行4.文件上传流程 支持任意文件上传的文件上传 a.恶意文件上传成功 b.…...

【Redis】非关系型数据库之Redis的主从复制、哨兵和集群高可用

目录 一、主从复制、哨兵、集群的区别 二、主从复制 2.1主从复制的作用 2.2主从复制的原理 2.3主从复制的实操 步骤一&#xff1a;环境准备 步骤二&#xff1a;安装Redis以及配置文件修改 Redis的主从配置文件都一样 步骤四&#xff1a;验证主从复制 三、哨兵 3.1哨兵…...

从私有Git仓库的搭建到命令的使用及部署再到分支管理

一、版本控制系统/版本控制器 1. 版本控制系统&#xff1a; git 分布式 —没有中心代码库&#xff0c;所有机器之间的地位同等&#xff08;每台机器上都有相同的代码&#xff09; svn 集中管理的 —有中心代码库&#xff0c;其他都是客户端 2.git与svn介绍 1.git属于分布…...

mysql基础-常用函数汇总

目录 1. 查询技巧 2. 时间函数 2.1 now() 2.2 current_date() 2.3 时间差timestampdiff&#xff08;&#xff09;与datediff&#xff08;&#xff09; 2.4 其他时间函数 3. 字符函数 3.1 截取函数 3.2 分割函数 3.3 left与right函数 3.4 其他函数 4. 数字函数 5. …...

COCO数据格式的json文件内容

COCO(Common Objects in Context)数据集现在有3种标注类型:object instances(目标实例), object keypoints(目标上的关键点), 和image captions(看图说话),使用JSON文件存储,包含了对图像中目标的边界框、类别标签、分割掩码等信息。 COCO标注文件是一个包含多个字…...

AI-数学-高中-3.二次函数的根的分布问题的解题方法

原作者学习视频&#xff1a;二次】3二次函数根分布问题&#xff08;中档&#xff09;_哔哩哔哩_bilibili 一、伟达定理&#xff08;根与0比较的二次函数&#xff09; 示例&#xff1a; 二、画图法&#xff1a; 1.开口方向的确定&#xff0c;有的示例可能存在向上、下两种情况…...

golang中gorm使用

前言 记录下go语言操作mysql数据库&#xff0c;选用gorm&#xff0c;gorm是一个流行的对象关系映射&#xff08;ORM&#xff09;库&#xff0c;用于简化与数据库的交互。 接入步骤 安装gorm&#xff1a;首先&#xff0c;你需要使用Go模块来安装gorm。在终端中运行以下命令&…...

centoss7安装mysql详细教程

【MySQL系列】在Centos7环境安装MySQL_centos7安装mysql-CSDN博客 【MySQL系列】在Centos7环境安装MySQL_centos7安装mysql-CSDN博客 【MySQL系列】在Centos7环境安装MySQL_centos7安装mysql-CSDN博客...

SpringBoot-拓展

邮件 依赖 <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId>配置 spring.mail.username邮箱 spring.mail.password授权码 spring.mail.hostsmtp.qq.com # 开启加密验证 spring.mail.properties.mai…...

用于查询性能预测的计划结构深度神经网络模型--大数据计算基础大作业

用于查询性能预测的计划结构深度神经网络模型 论文阅读和复现 24.【X1.1】 在关系数据库查询优化领域&#xff0c;对查询时间的估计准确性直接决定了查询优化结果&#xff0c;进而影响到数据库整体的查询效率。但由于数据库自身的复杂性&#xff0c;查询时间受到数据分布、数据…...

wordpress更新提示关闭/seo工具包括

文章目录一、简介二、安全加固方案1、隐藏 module 信息2、使用权限控制3、限制网络访问4、启用账户认证5、数据加密传输一、简介 Rsync 是一个通过检查文件的时间戳和大小&#xff0c;来跨计算机系统高效地传输和同步文件的工具。 通常情况下&#xff0c;管理程序在启动 Rsyn…...

阿里云的云服务器做网站用哪种/百度推广总部客服投诉电话

如果懂位的运算&#xff0c;看到下面这2个程序执行的结果&#xff0c;会很容易理解&#xff0c;如果像我这样的菜鸟&#xff0c;刚接触开始肯定也觉得晕晕的&#xff0c;| 这是什么运算符&#xff1f; |就是位的或运算符&#xff0c;下面还是用上面的程序来讲解一下&#xff0c…...

衢州网络公司做网站/深圳seo推广公司

关于 Python 的字符串处理相关的方法还是许多的。因为我正在学习 Python&#xff0c;于是就把 Python 中这些混杂的用于 string 的函数总结出来&#xff0c;在自己忘记的时候便于查找&#xff0c;希望对于有相似需求的人有所帮助。captalize() 函数功能将一个字符串的第一个字母…...

那些网站可以做0首付分期手机/seo的目的是什么

logistic回归示意图 sigmoid激活函数。 这个图画的有一点神经网络的感觉。 这里用到了极大似然。 L 就是在各个x下&#xff0c;是已知分类的概率的乘积&#xff0c;使得这个L最大的w和b值&#xff0c;就是所求。 求max转换为求min 将C1 C2 分类转换为 0 1 分类&#xff0c;为…...

哪里可做网站/新手电商运营从哪开始学

A. Nearest Interesting Number 题目链接&#xff1a;http://codeforces.com/problemset/problem/1183/A 题意&#xff1a;找到一个距离n最近并且不小于n的各个数位和%40的数。 思路&#xff1a;直接暴力即可。 AC代码&#xff1a; #include<bits/stdc.h> using nam…...

怎么创建视频号/深圳优化公司统高粱seo

如果你想查看更多 Jmeter 常用函数可以在这篇文章找找哦 https://www.cnblogs.com/poloyy/p/13291704.htm 作用 执行 BeanShell 脚本&#xff0c;并返回结果 语法格式 ${__BeanShell(123*456,name)} 参数讲解 字段含义是否必传BeanShellBeanShell 脚本yesVariable Name存储脚本…...