【Day2】零基础学java--》牛客网刷题【字符集合】

news2024/11/20 20:41:42

大家好,我是良辰丫💞!好久不见,一个多月没写博客了,都有些生疏了,学校的一些事情,考试,实训,各种实验,嘿嘿嘿!其实也不能为自己找借口,开启的每天一博客竟然一个月只写了一篇博客,简直是荒唐呀!努力赶上进度,加油。今天我们来刷一个牛客网的字符集合题。链接放到这里了,大家可以去做一下。➡字符集合

🧑个人主页:良辰针不戳
📖所属专栏:EveryDay零基础学java
🍎励志语句:生活也许会让我们遍体鳞伤,但最终这些伤口会成为我们一辈子的财富。
💦期待大家三连,关注,点赞,收藏。
💞愿与君为伴,共探Java汪洋大海。

题目描述
输入一个字符串,求出该字符串包含的字符集合,按照字母输入的顺序输出。
数据范围:输入的字符串长度满足 1 \le n \le 100 \1≤n≤100 ,且只包含大小写字母,区分大小写。
本题有多组输入

输入描述
每组数据输入一个字符串,字符串最大长度为100,且只包含字母,不可能为空串,区分大小写。

输出描述
每组数据一行,按字符串原有的字符顺序,输出字符集合,即重复出现并靠后的字母不输出。

在这里插入图片描述

简要分析

  • 一定要读懂题,抓到题目的关键字,不能丢三落四,你写的代码不符合题目要求,那怎么能过呢?
  • 只能输入字母,输入大写字母或者小写字母。
  • 多组输入。
  • 按输入的先后输出。这一点至关重要。比如你输入sdaa,输出结果为sda,而不是ads,不用你按照字母先后顺序排序,没看清题,多此一举的话还需要重新考虑,这就浪费了很多时间。

思路分析

  • 第一眼看到这样的题,很多人想到的是暴力求解,嘿嘿嘿,暴力永远的神,你不服,我就用暴力把你打服。确实,暴力能解决绝大多数问题,但是,很多情况下,暴力并不可取,时间复杂度超出预算,编译器都通不过。因此我不建议大家经常使用暴力求解,说白了,暴力求解是绝大多数人都能想到的,经常使用暴力求解很难让一个人进步。
  • 举一个简单的例子,从1加到100,从头到尾加肯定能求出结果,用一个公式也能求出结果,而且快了很多,这就是算法。
  • 思想是通过不断的做题慢慢培养的,这道题我们需要培养的一个思想就是数组处理相同的元素,遍历一次输入的字符串,然后依次存取到相应位置,数组的坐标就是字符的ASCII值,这样便于处理,当然,如果大家想减少时间复杂度,也可以从0下标开始存取,但是这样容易出错。
//代码如下
public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextLine()){
            String str = scanner.nextLine();
            String ret = func(str);
            System.out.println(ret);
        }
    }
    public static String func(String str){
        int[] arr = new int[150];
        //这里使用StringBuffer,为了使用它的append方法
        StringBuffer str2 = new StringBuffer();
        for (int i = 0; i < str.length(); i++) {
            char ch = str.charAt(i);
            if(arr[ch]==0){
                arr[ch]=1;
                str2.append(ch);
            }
        }
        //类型要一致,StringBuffer转换成String
        return str2.toString();
    }

运行结果如下图
在这里插入图片描述

到了这里还没完呢!上面是按照输入先后顺序输出,下面我们要按照a-z的先后顺序输出。其实也不难,上面的题我们已经排好了序,因为是按照字符的ASCII值当做下标的,我们只需要再遍历一次就行了。

public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextLine()){
            String str = scanner.nextLine();
            String ret = func(str);
            System.out.println(ret);
        }
    }
    public static String func(String str) {
        char[] arr = new char[150];
        StringBuffer str2 = new StringBuffer();
        for (int i = 0; i < str.length(); i++) {
            char ch = str.charAt(i);
            if (arr[ch] == 0) {
                //细节决定成败,这里不小心把坐标ch写成了i
                arr[ch] = ch;
            }
        }
        for (int j = 0; j < arr.length; j++) {
            if (arr[j] != 0) {
                str2.append(arr[j]);
            }
        }
        return str2.toString();
    }

运行结果如下图。
在这里插入图片描述
学习了新的知识是不是感到很快乐呢?我是良辰,我们下次再见,期待那么的三连哦!

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

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

相关文章

PDF文件怎么添加水印?一定要学会的两个方法

相信大家都遇到过这种难题&#xff0c;那就是自己制作PDF文件传输给别人之后&#xff0c;害怕文件内容被别人使用&#xff0c;窃取自己的劳动成果&#xff0c;所以需要对自己的文件进行保护&#xff0c;我们通常的做法是给PDF文件添加水印&#xff0c;这样就可以尽可能的保护文…

Redis这个内存回收,确实有点牛逼!!!

1. 过期 key 处理 Redis 之所以性能强&#xff0c;最主要的原因就是基于内存存储。然而单节点的 Redis 其内存大小不宜过大&#xff0c;会影响持久化或主从同步性能。 我们可以通过修改配置文件来设置 Redis 的最大内存&#xff1a; maxmemory 1gb当内存使用达到上限时&…

【LeetCode】1812. 判断国际象棋棋盘中一个格子的颜色

题目描述 给你一个坐标 coordinates &#xff0c;它是一个字符串&#xff0c;表示国际象棋棋盘中一个格子的坐标。下图是国际象棋棋盘示意图。 如果所给格子的颜色是白色&#xff0c;请你返回 true&#xff0c;如果是黑色&#xff0c;请返回 false 。 给定坐标一定代表国际象棋…

五、卷积神经网络CNN5(卷积相关问题2)

采用宽卷积的好处有什么 窄卷积和宽卷积 对于窄卷积来说&#xff0c;是从第一个点开始做卷积&#xff0c;每次窗口滑动固定步幅。比如下图左部分为窄卷积。那么注意到越在边缘的位置被卷积的次数越少。于是有了宽卷积的方法&#xff0c;可以看作在卷积之前在边缘用 0 补充&…

MySQL数据库学习(1)

一、概述 MySQL 是最流行的关系型数据库管理系统&#xff0c;在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System&#xff1a;关系数据库管理系统)应用软件之一。 在本教程中&#xff0c;会让大家快速掌握 MySQL 的基本知识&#xff0c;并轻松使用 M…

【畅购商城】微信支付模块之微信支付二维码

目录 流程分析 微信支付概述 账号申请 已有账号 ​​​​​​​支付接口和SDK(了解)​​​​​​​ ​​​​​​​入门案例 统一下单 ​​​​​​​查询订单 ​​​​​​​JS版二维码&#xff1a;QRCode.js ​​​​​​​概述 ​​​​​​​入门案例 ​​​​…

字节跳动3-2专家强烈推荐入广告核心部门,要学的12大技术实战PDF

前言 你了解过字节跳动的薪资和职级是什么样的吗&#xff1f; 想必大家都对字节跳动的薪资和职级都有一定的了解了&#xff0c;下面就给大家介绍字节3-1专家推荐的进入字节跳动需要储备知识技能&#xff01;&#xff01;&#xff01; 应届生进入字节跳动的是711的学习路线&am…

Innodb如何实现表--下篇

Innodb如何实现表--下篇Innodb数据页结构File HeaderPage HeaderInfimum和Supremum RecordUser Records和Free SpacePage DirectoryFile Trailer实例分析Innodb数据页结构 Innodb数据页由以下7个部分组成: File Header(文件头) Page Header(页头) Infimun和Supremum Records U…

Abaqus二次开发:局部坐标系的建立与应用

问题描述 在单向复材中&#xff0c;纤维的力学性能往往是横观各向同性的&#xff0c;于是需要规定材料方向。 通常需要新建局部坐标系用于材料方向的定义&#xff0c;而在实际建立坐标系中&#xff0c;坐标系会储存在对应的Part下&#xff1a; mdb.models[‘Model-1’].parts[…

GraphQL基础使用--mongoDB数据库操作

GraphQL hello world 首先我们要安装好执行GraphQL的环境 因为其是运行在node服务器端的&#xff0c;所以我们要安装 express express-graphql graphql mongoose 安装好后的package.json文件是这个样子的 其次我们就要开始配置端口为3000的node服务器 const express requir…

Leetcode---2.两数之和

目录题目分析链表最终代码实现&#xff08;内含注释&#xff09;题目 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和…

护眼灯对眼睛真的有作用吗?一文了解市面上的护眼灯是否真的管用

我们都知道&#xff0c;现在越来越多的人开始使用护眼台灯照明了&#xff0c;不为别的&#xff0c;只为眼睛健康&#xff0c;所以同样的也有许多人质疑护眼灯是否真的对眼睛有效果&#xff0c;今天就来聊聊护眼灯是否真的有护眼作用。 在我看来&#xff0c;人体眼睛看任何事物…

TS201的通过外部中断IRQ0控制DMA传输(含参考代码)

外部中断控制DMA传输 DMA的原理就不多说了&#xff0c;之前的文章里有写。 电路中的Interrupt Pin ADSP-TS201 EZ-KIT Lite评估板上每片DSP含有4个外部中断(IRQ3–0 )&#xff0c;其中IRQ0接到了一个按键上&#xff08;SW4和SW5&#xff09;。 当按键按下时&#xff0c;表现…

西湖论剑 Flagshop 分析复现

前言 比赛时候没能做出来&#xff0c;其实这道题就是一道pwn题。后面与p w n师傅讨论分析EXP分析还原了解题过程。学到了很多&#xff0c;也希望分享给大家。 任意文件读取 抓包或者看源码就会发现有一个SSRF&#xff0c;但是没有权限读flag&#xff0c;测试发现存在一个readf…

全网惟一面向软件测试人员的Python基础教程-为什么要学Python

全网惟一面向软件测试人员的Python基础教程 起点&#xff1a;python软件测试实战宝典》目录 第一章 为什么软件测试人员要学习Python 文章目录全网惟一面向软件测试人员的Python基础教程前言一、Python是什么&#xff1f;二、为什么要学二、测试人员如何学二、怎么从0开始学Py…

旅行路线可视化研究与实现(Java+Android+Eclipse实现的旅游APP)

目 录 1 概论 1 1.1 研究现状 1 1.2 系统开发意义 1 1.3 系统开发背景 2 2 开发环境以及相关技术 5 2.1 Eclipse 5 2.2 Adroid 5 2.2.1 基本概念 5 2.2.2 简介 6 2.2.3 系统架构 6 2.2.4 四大组件 7 2.3 Java语言 7 2.4 SQLite 7 2.4.1 简介 7 2.4.2 架构 7 2.4.3 特点 8 2.5 F…

《Redis 深度历险:核心原理与应用实践》学习

1、Redis的5种基础数据结构 Redis的5种基础数据结构&#xff1a;string (字符串&#xff09;、list (列表 &#xff09;、hash (字典&#xff09;、 set (集合&#xff09;、zset (有序集合&#xff09;。 Redis所有的数据结构都以唯一的key字符串作为名称&#xff0c; 然后通…

基于粒子群优化算法的边缘链接用于边缘检测(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

艾美捷FLIVO探针:用于细胞活体凋亡检测,助力科研!

细胞凋亡在胚胎发育、造血、免疫系统的成熟以及维护正常组织和器官的细胞恒定与生长平衡&#xff0c;乃至机体衰老方面都起着重要作用。因此&#xff0c;有关凋亡的研究在临床和基础等各个领域已经广泛开展,凋亡细胞的检测方法显得非常重要。 FLIVO(荧光活体)是一种强大的无创检…

首个搭载8MP摄像头的单SoC行泊一体方案来袭,已拿下多家车企定点

行泊一体正在进入前装规模化上车的关键周期&#xff0c;但同时产品的升级战争也在全面爆发。 《高工智能汽车》了解到&#xff0c;国内领先的智能驾驶技术供应商——AutoBrain重磅推出了国内首个搭载800万像素摄像头的单SoC行泊一体方案。据悉&#xff0c;这是全球量产首发搭载…