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

网站开发时间进度表模板下载官网排名优化

网站开发时间进度表模板下载,官网排名优化,毛片做暧小视频在线观看网站,wordpress 腾讯云cdn题目 本题要求你计算A−B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A−B。 输入格式: 输入在2行中先后给出字符串A和B。两字符串的长度都不超过10的四次方,并且…

题目

本题要求你计算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();}
}
http://www.tj-hxxt.cn/news/121213.html

相关文章:

  • 找人做网站要准备什么软件百度爱采购推广一个月多少钱
  • 武警部门建设网站的好处温州网站建设
  • ps怎么做网站首页图企业网站推广方法实验报告
  • 能制作视频的软件西安做seo的公司
  • 淄博桓台网站建设报价线下推广渠道有哪些方式
  • 一般通过什么意思天津seo外包
  • 网站怎么设置为可信任网站2023很有可能再次封城吗
  • 罗湖网页设计seo搜索优化公司排名
  • 小说网站怎么做词晋江友情链接是什么意思
  • 音乐网站答辩百度竞价排名利弊
  • 小程序开发公司排行的搜索引擎优化
  • 制作ppt的步骤优化大师app下载安装
  • 用DW做的网站生成链接十大it教育培训机构排名
  • 潍坊网站建设方案推广站长统计app软件下载官网
  • 个体户可以做网站建设线上推广外包公司
  • 1688官网登录入口湖南竞价优化哪家好
  • 怎么不用wordpress自己怎么优化网站
  • 网站防止非法链接怎么做请你设计一个网络营销方案
  • 400全国服务热线容桂网站制作百度com百度一下你
  • 四川建设监理协会网站北京seo网站推广
  • wordpress save_post搜索引擎优化的重要性
  • 个人网站icp备案网可以免费发布广告的平台有哪些
  • 石家庄便宜网站制作5188大数据官网
  • 婚恋网站如何做自媒体营销怎么找需要推广的商家
  • 如何查看网站是什么语言做的培训学校怎么招生
  • b2c电子商务网站的企业类型东莞网站优化公司哪家好
  • 怎样在网上建网站做电商生意网站自助建站系统
  • 北京好的网站建设打开百度搜索网站
  • 网站怎么注销备案号市场营销毕业后找什么工作
  • 大连哪家公司做网站好贵阳网络推广排名