【笔试强训编程题】Day1.(组队竞赛100449)和(删除公共字符69390)

news2024/12/23 14:28:17

作者简介:大家好,我是未央;

博客首页:未央.303

系列专栏:笔试强训编程题

每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!!!

文章目录

前言

一、组队竞赛100449

二、删除公共字符69390

题目描述:

题目解析:

总结


前言

今天我们将进入到编程题的训练当中,这里面的编程题大多数都是牛客的习题;编程题对我们以后的笔试环节有着很大的作用,所以必须熟练的掌握和运用;话不多说,让我们看看第一天的题目吧!!!!


一、组队竞赛100449


二、删除公共字符69390

题目描述:

输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”

输入描述:

每个测试输入包含2个字符串;

输出描述:

输出删除后的字符串;

示例:

牛客链接: https://www.nowcoder.com/practice/f0db4c36573d459cae44ac90b90c6212?tpId=85&&tqId=29
868&rp=1&ru=/activity/oj&qru=/ta/2017test/question-ranking


题目解析:

思路分析:

本题如果使用传统的暴力查找方式,如判断第一个串的字符是否在第二个串中,在再挪动字符删除这个字符的 方式,效率为O(N^2) ,效率太低,很难让人满意。

所以我们采用哈希映射法进行解决:

哈希映射的思想:

第一步:
因为ASCII表中一共有256个字符,所以我们可以定义一个数组,初始化为0;

hash[256] = {0};

第二步:
遍历str2,在hash数组中字符对应的位置(比如b的ascll是98),将这个位置中的数据0变成1(此处是起到标记作用,说明这个字符是我们要删除的字符)

  for (int i = 0; i < str2.size(); ++i)
    {
        hash[str2[i]]++;
    }

第三步:
遍历str1,将对应字符位置的数据等于0的字符保存下来,而等于1的字符则不保存,因为是要删除的字符;

string result;
    for (int i = 0; i < str1.size(); i++)
    {
        if (hash[str1[i]] == 0)
        {
            result += str1[i];
        }
    }

代码实现:

import java.util.*;
public class Main{
    public static void main(String [] args){
    Scanner sc=new Scanner(System.in);
    String str1= sc.nextLine();
    String str2= sc.nextLine();
    HashMap<Character,Integer> map=new HashMap<>();  
     //1.遍历第2个字符串str2;  
     for(int i=0; i<str2.length();i++){
         //当前拿到的字符判断之前是否存在map中;
         if(map.get(str2.charAt(i))==null){
             map.put(str2.charAt(i),1);
         }else{
             map.put(str2.charAt(i),map.get(str2.charAt(i))+1);
         }
     }
    String ret=""
       //2、遍历第1个字符串str1;
       for(int j=0;j<str1.length();j++){
           if(map.get(str1.charAt(j))==null){
               ret+=str1.charAt(j);
           }
       }
    System.out.println(ret);
    }
 }

总结

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

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

相关文章

【CSS3系列】第一章 · CSS3新增的三种基本属性

写在前面 Hello大家好&#xff0c; 我是【麟-小白】&#xff0c;一位软件工程专业的学生&#xff0c;喜好计算机知识。希望大家能够一起学习进步呀&#xff01;本人是一名在读大学生&#xff0c;专业水平有限&#xff0c;如发现错误或不足之处&#xff0c;请多多指正&#xff0…

FineBI6.0基础学习第一课 数据门户

PC端门户使用示例 首先,以管理员身份登录FineBI系统,安装数据门户,安装步骤见官网 新建一个数据门户

SouapUI接口测试之创建性能测试

SouapUI也是一个能生动的体现一个系统&#xff08;项目&#xff09;性能状态的工具&#xff0c;本篇就来说说如何在SouapUI工具下创建性能测试 一、创建测试用例 由于在《SouapUI接口测试之使用Excel进行参数化》篇已经创建好了测试用例&#xff0c;本篇就不讲解如何创建测试…

SpringCloudAlibaba:服务网关之Gateway学习

目录 一、网关简介 &#xff08;一&#xff09;为什么要用网关 &#xff08;二&#xff09;网关解决了什么问题 &#xff08;三&#xff09;常用的网关 二、Gateway简介 &#xff08;一&#xff09;核心概念 &#xff08;二&#xff09;工作原理 三、Gateway快速入门 &…

linuxOPS基础_用户与组管理

linux用户与组概念 为什么需要了解用户和组 服务器要添加多账户的作用 ​ 针对不同用户分配不同的权限&#xff0c;不同权限可以限制用户可以访问到的系统资源 ​ 提高系统的安全性 ​ 帮助系统管理员对使用系统的用户进行跟踪 用户和组的关系 理论上Linux系统中的每个用户…

2023年6月实时获取地图边界数据方法,省市区县街道多级联动【附实时geoJson数据下载】

首先&#xff0c;来看下效果图 在线体验地址&#xff1a;https://geojson.hxkj.vip&#xff0c;并提供实时geoJson数据文件下载 可下载的数据包含省级geojson行政边界数据、市级geojson行政边界数据、区/县级geojson行政边界数据、省市区县街道行政编码四级联动数据&#xff0…

日本原装Yokogawa AQ6317B横河AQ6317C光谱分析仪

Yokogawa AQ6317B光谱分析仪&#xff0c;50 GHz ​Yokogawa AQ6317B 光谱分析仪 (OSA) 是一款先进的光谱分析仪&#xff0c;应用范围广泛&#xff0c;包括光源评估、光学设备损耗波长特性的测量以及 WDM&#xff08;波分复用&#xff09;系统的波形分析。在 Yokogawa 购买产品…

第十七篇、基于Arduino uno,获取cp2d12红外测距传感器的原始值和距离值——结果导向

0、结果 说明&#xff1a;先来看看串口调试助手显示的结果&#xff0c;第一个值是原始的模拟电压值&#xff0c;第二个值是距离值&#xff0c;如果是你想要的&#xff0c;可以接着往下看。 1、外观 说明&#xff1a;虽然红外测距传感器形态各异&#xff0c;但是原理和代码都是…

java中实现对象属性复制的工具类

在 Java 中&#xff0c;有多个工具类可用于实现对象属性的复制&#xff0c;使得属性值从一个对象复制到另一个对象。以下是几个常用的工具类&#xff1a; Apache Commons BeanUtils&#xff1a; Apache Commons BeanUtils 提供了 BeanUtils 类&#xff0c;可以方便地进行属性…

一文简介Linux固件子系统的实现机制

一、Linux固件子系统概述 固件是硬件设备自身执行的一段程序。固件一般存放在设备flash内。而出于成本和便利性的考虑&#xff0c;通常是先将硬件设备的运行程序打包为一个特定格式的固件文件&#xff0c;存储到终端系统内&#xff0c;通过终端系统给硬件设备进行升级。Linux内…

java面向对象学习

一、Java类及类的成员 1.类是对一类事物的描述&#xff0c;是抽象的、概念上的定义 2.对象是实际存在的该类事物的每个个体&#xff0c;因而也称为实例 3.属性&#xff1a;对应类中的成员变量 4.行为&#xff1a;对应类中的方法 权限修饰符号&#xff1a;public、protected…

玄派玄智星笔记本U盘重装电脑系统详细步骤教学

玄派玄智星笔记本U盘重装电脑系统详细步骤教学。有用户使用玄派玄智星笔记本的时候&#xff0c;电脑系统出现了故障&#xff0c;导致自己无法启动电脑了。这个情况需要使用U盘去进行系统的重装&#xff0c;那么具体要怎么去进行重装呢&#xff1f;来看看以下的操作方法吧。 准备…

移动端布局之流式布局1(百分比布局):流式布局基础、案例:京东移动端首页1

移动端布局之流式布局1 流式布局&#xff08;百分比布局&#xff09;基础案例&#xff1a;京东移动端首页搭建相关文件夹结构设置视口标签以及引入初始化样式normalize.css引入我们的css初始化文件与首页css body设置index.css app布局和app内容填充index.htmlindex.css 搜索模…

小说App源码分享,从零开始搭建小说阅读平台

作为一名小说阅读爱好者或者创业者&#xff0c;你是否也曾经想要搭建自己的小说阅读平台&#xff1f;然而&#xff0c;开发一款小说App通常需要大量的人力、物力和时间成本&#xff0c;怎样才能让它变得更加容易&#xff1f;今天&#xff0c;我将与大家分享如何从零开始&#x…

VSD?啥是VSD?VSD应用场景你知道吗?

软件介绍 Vayo-Stencil Designer Vayo-Stencil Designer&#xff08;简称VSD&#xff09;是一款面向企业的专业钢网设计软件&#xff0c;可以为企业高效构建适合企业自身产品和工艺know-how的数字化开口规范&#xff0c;解决钢网开口审查、局部开口设计、完整钢网设计、PIP焊…

07 【内置指令 自定义指令】

1. 内置指令 之前学过的指令&#xff1a; v-bind 单向绑定解析表达式&#xff0c;可简写为 :v-model 双向数据绑定v-for 遍历数组 / 对象 / 字符串v-on 绑定事件监听&#xff0c;可简写为****v-show 条件渲染 (动态控制节点是否展示)v-if 条件渲染&#xff08;动态控制节点是…

一文读懂责任分配矩阵,解决你80%的项目难题

成功的项目管理取决于整个团队对角色和职责的理解&#xff0c;使用责任分配矩阵分配和定义角色是使项目保持在正轨并为成功做好准备的好方法。 如果设计得当&#xff0c;责任分配矩阵能够促进项目的成功交付。 一、什么是责任分配矩阵 责任分配&#xff08;RACI&#xff09;矩…

行驶的汽车-第14届蓝桥杯国赛Scratch真题初中级组第1题

[导读]&#xff1a;超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成&#xff0c;后续会不定期解读蓝桥杯真题&#xff0c;这是Scratch蓝桥杯真题解析第143讲。 行驶的汽车&#xff0c;本题是2023年5月28日上午举行的第14届蓝桥杯国赛Scratch图形化编程初中级组真题第1题…

chatgpt赋能python:如何关闭Python中的Figure?

如何关闭Python中的Figure&#xff1f; 简介 在Python中使用Matplotlib生成图形时&#xff0c;我们会使用到Figure对象&#xff0c;它是图形的容器。在一些情况下&#xff0c;我们可能需要手动关闭这个Figure&#xff0c;例如多次运行程序导致Figure叠加、或者让程序周期性的…

Java程序设计入门教程--字符类String

String构造方法 创建字符串有两种格式 String 字符串名 new String &#xff08;字符串常量&#xff09; ; String 字符串名 字符串常量 ; String str new String ( "student" ); String str "student"&#xff1b;两种格式的区别 这两种格式生成…