字符集合!!!

字符集合!!!

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

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

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

示例1 输入: abcqweracb
输出: abcqwer

示例2
输入:
aaa
输出:
a

思路
以:abcqweracb 分析
首先我们要从一个字符串中获取到每个字符,那么需要遍历字符串,拿到每个字符

for(int i=0;i<str.length();i++){char ch=str.charAt(i);
}

因为相同的字符只输出一次,那么我们最好标记一下,比如当’a’第一次出现时,定义一个变量int x,让x=1,当’a’第2次第三次…出现时,我们让这个变量x=0。那么对定义的变量有什么要求?
其实,定义的该变量最好是boolean类型,因为boolean类型默认值false,也就是当’a’字符没有出现过时,该变量为false,比较符合大多数人的逻辑,当’a’出现时,把定义的变量赋值为true;
在每次遍历一个字符时判断一下,如果boolean x=false,说明没输出过字符’a’,那么把字符’a’输出,并把x变量赋值为true;那么下次判断的是时候,打印语句就不会执行。
因为输入的字符有许多种,不可能一种字符定义一个变量,此时我们可以定义一个boolean数组,当字符为’a’时,(根据ASCII码值,字符’a’=97),对应该数组下标97,字符为’b’时,对应数组下标98,
综上,遍历字符串,拿到每个字符,然后根据这个字符的ASCII值,对应一个boolean数组的下标,通过下边就可以唯一对应一个字符,当某个字符没出现时默认为false,,当
该字符第一次出现时,因为默认值为false,进出判断语句,然后让该字符对应数组的赋值为true;下次该字符再次出现时,再也不会进入判断语句。

import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);while (in.hasNextLine()) { // 注意 while 处理多个 caseString str=in.nextLine();StringBuilder stringBuilder=new StringBuilder();boolean[] flgs=new boolean[127];for(int i=0;i<str.length();i++){char ch=str.charAt(i);if(flgs[ch]==false){ stringBuilder.append(ch);//如果某字符第一次出现,,就把//该字符连接到 stringBuilder,便于后续直接输出flgs[ch]=true;}}System.out.println(stringBuilder);}}
}

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

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

相关文章

中国信息通信研究院产业与规划研究所校招一面、二面内容

本文介绍2024届秋招中&#xff0c;中国信息通信研究院的数字孪生智慧城市研究员岗位一面、二面的面试基本情况、提问问题等。 10月投递了中国信息通信研究院的数字孪生智慧城市研究员岗位&#xff0c;所在部门为数字孪生与城市数字化研究部。目前完成了一面与二面&#xff0c;在…

Django 模型和Admin站点管理(三)

一、定义模型 &#xff08;1&#xff09; 创建模型类&#xff0c;必须要继承自 models.Model from django.db import models# Create your models here. #设计数据库 #创建模型 class UserModel(models.Model):namemodels.CharField(max_length30) #对应于SQL name varchar(30…

K8s实战RestartPoliy策略

一、默认策略为Always cmd.yaml apiVersion: v1 kind: Pod metadata:name: myapp-pod labels:app: myapp spec: containers:- name: myapp-container image: busyboxcommand: [sh, -c, echo OK!&& sleep 60]首先我们根据这个yaml创建一个测试的pod 执行命令 kubec…

Vue.observable可以在vue2中给新增的属性增加响应式

将data中的config数据转为响应式&#xff1a; data() {return {config: {password1: "YQd^7D1",password2: "YQd^7D2",password3: "YQd^7D3"}}; }, computed: {transformedConfig() {if (this.config) {return Object.keys(this.config).map(k…

C++二维数组中的查找

4. 二维数组中的查找 题目链接 牛客网 题目描述 给定一个二维数组,其每一行从左到右递增排序,从上到下也是递增排序。给定一个数,判断这个数是否在该二维数组中。 Consider the following matrix: [[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22],[1…

深度之眼Paper带读笔记GNN.08.GCN(下)

文章目录 前言细节四&#xff1a;卷积核介绍图卷积核初代目图卷积核二代目契比雪夫多项式例子小结 GCN公式推导 实验设置和结果分析数据集节点分类任务消息传递方式比较运行效率 总结关键点创新点启发点 代码复现train.pyutil.pymodel.pylayer.py 作业 前言 本课程来自深度之眼…

基于单片机直流电机调速(proteus仿真+源程序)

一、系统方案 1、本设计采用这51单片机作为主控器。 2、转速值送到液晶1602显示。 3、按键设加减速&#xff0c;开始暂停、正反转。 二、硬件设计 原理图如下&#xff1a; 三、单片机软件设计 1、首先是系统初始化 en0; rw0; write_com(0x01); //lcd初始化 write_com(0x38)…

CQ 社区版 V2.6.0 发布 | SQL闪回、权限看板、新增数据源人大金仓等

前言 HELLO&#xff0c;大家好&#xff0c;又到了 CloudQuery 社区版发版时间&#xff01;本次更新版本为 v2.6.0&#xff0c;亮点多多&#xff0c;我们直入主题一起来看&#xff01; 一、本期亮点 新增 3 种数据源支持 V2.6.0&#xff0c;新增三种国产数据源支持&#xff…

cocos2dx ​​Animate3D (一)

3D相关的动画都是继承Grid3DAction 本质上是用GirdBase进行创建动画的小块。 Shaky3D 晃动特效 // 持续时间(时间过后不会回到原来的样子) // 整个屏幕被分成几行几列 // 晃动的范围 // z轴是否晃动 static Shaky3D* create(float initWithDuration, const Size& …

内存可见性与指令重排序

文章目录 内存可见性内存可见性问题代码演示JMM&#xff08;Java Memory Model&#xff09; 指令重排序指令重排序问题代码演示指令重排序分析 volatile关键字volatile 保证内存可见性 & 禁止指令重排序volatile 不保证原子性 在上一节介绍线程安全问题的过程中&#xff0c…

2023亚太杯数学建模B题思路 - 玻璃温室中的微气候法规

# 1 赛题 问题B 玻璃温室中的微气候法规 温室作物的产量受到各种气候因素的影响&#xff0c;包括温度、湿度和风速[1]。其中&#xff0c;适 宜的温度和风速是植物生长[2]的关键。为了调节玻璃温室内的温度、风速等气候因素 , 温室的设计通常采用带有温室风扇的通风系统&#x…

实验4.数据全量、增量、比较更新

【实验目的】 1.利用Kettle的“表输入”&#xff0c;“表输入出”&#xff0c;”JavaScript代码”组件&#xff0c;实现数据全量更新。 2.熟练掌握“JavaScript代码”&#xff0c;“表输入”&#xff0c;“表输入出”组件的使用&#xff0c;实现数据全量更新。 【实验原理】 …

MATLAB算法实战应用案例精讲-【图像处理】图像缩放

目录 前言 知识储备 MATLAB图像处理函数 数字数字图像增强 数字数字图像的变换

二级指针

*代表指针变量。int*为p的类型。故pp第一个*表示pp为指针int** pp&#xff0c;指向p的二级指针。 p中储存a的地址&#xff0c;pp中储存p的地址。 打印&#xff0c;printf中**pp的表示&#xff1a;pp中储存的是p的地址&#xff0c;第一个*解引用地址p表示p的内容&#xff0c;p的…

Pickcode:教孩子们编码的新视觉语言

Pickcode 通过视觉课程、聊天机器人、游戏和绘图来教授编程。 Pickcode 是一种新的语言和编辑器&#xff0c;可以直观地指导用户编写代码来制作聊天机器人、动画图画和游戏。Pickcode 旨在让用户在学习更高级的语言之前能够充满信心地开始学习编码。 Pickcode 可视化编程语言…

回归算法优化过程推导

假设存在一个数据集&#xff0c;包含工资、年龄及贷款额度三个维度的数据。我们需要根据这个数据集进行建模&#xff0c;从而在给定工资和年龄的情况下&#xff0c;实现对贷款额度的预测。其中&#xff0c;工资和年龄是模型构建时的两个特征&#xff0c;额度是模型输出的目标值…

被DDOS了怎么办 要如何应对

DDoS攻击的特点和类型 1. 特点 DDoS攻击的特点是通过大量合法的请求或者无效的请求&#xff0c;消耗目标服务器的网络带宽和系统资源&#xff0c;使其无法正常运行。攻击者通常使用多个主机发起攻击&#xff0c;以达到更高的攻击效果。 2. 常见类型 &#xff08;1&#xff09;S…

SPASS-ARIMA模型

基本概念 在预测中,对于平稳的时间序列,可用自回归移动平均(AutoRegres- sive Moving Average, ARMA)模型及特殊情况的自回归(AutoRegressive, AR)模型、移动平均(Moving Average, MA)模型等来拟合,预测该时间序列的未来值,但在实际的经济预测中,随机数据序列往往…

macos端文件夹快速访问工具 Default Folder X 最新for mac

Default Folder X 是一款实用的工具&#xff0c;提供了许多增强功能和快捷方式&#xff0c;使用户能够更高效地浏览和管理文件。它的快速导航、增强的文件对话框、自定义设置和快捷键等功能&#xff0c;可以大大提升用户的工作效率和文件管理体验。 快速导航和访问&#xff1a;…

Java开发中常用的工具类方法

一、JDK自带工具包 &#xff08;java.lang*.java.util.*等&#xff09; 面是Java中jdk中附带的一些常见工具类及其方法和示例的简介 工具类 / 类所在包 常用方法 描述 示例 Arrays (java.util) sort() 对数组进行排序 Arrays.sort(arr); binarySearch() 在数组中执行…