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

OR46 字符集合

题目:

  • 描述:输入一个字符串,输出该字符串包含的字符集合,并按字符在原字符串中首次出现的顺序输出;重复出现的字符只输出一次(区分大小写)。
  • 数据范围:字符串长度1 ≤ n ≤ 100,只包含英文字母(大小写字母)。
  • 输入:多组输入;每组输入一行字符串(非空,最长 100)。
  • 输出:对每组输入输出一行,按首次出现顺序去重后的字符串。

示例:

  • 输入:abcqweracb→ 输出:abcqwer
  • 输入:aaa→ 输出:a

https://www.nowcoder.com/practice/784efd40ed8e465a84821c8f3970b7b5?tplid=182&tqld=34772&ru=/exam/oj

思路

思路就是:按原字符串从左到右扫描,只保留每个字符“第一次出现”的那次,后面重复的都跳过,这样输出既是“字符集合”(去重),又保持“原有顺序”。

具体步骤:

  • 准备一个seen数组:seen[c] = true表示字符c已经出现过(大小写不同是不同字符,所以会分别记录)。
  • 准备一个StringBuilder sb用来拼结果(比反复substring/字符串拼接更高效,也不会破坏下标)。
  • 遍历字符串每个字符c
    • 如果seen[c] == false:说明第一次见到它,把它加入结果sb.append(c),并标记seen[c] = true
    • 如果seen[c] == true:说明之前出现过,直接跳过
  • 多组输入就用while (in.hasNextLine())每行处理一次,输出一行结果。

code

importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){Scannerin=newScanner(System.in);while(in.hasNextLine()){Strings=in.nextLine();boolean[]seen=newboolean[128];// 足够覆盖大小写字母StringBuildersb=newStringBuilder();for(inti=0;i<s.length();i++){charc=s.charAt(i);if(!seen[c]){seen[c]=true;sb.append(c);}}System.out.println(sb.toString());}}}
http://www.jsqmd.com/news/556801/

相关文章:

  • superpowers 包含的skills
  • 基于51单片机的车灯(左右拐,刹车,倒车)proteus、原 1668-基于51单片机的车灯(...
  • 如何用半监督对比学习打造多语言情感语音合成系统(附VITS实战配置)
  • Transformer横空出世!解决NLP难题,引爆AI革命!
  • 解密SWAT模型中的土壤水分特性:如何用SPAW快速计算AWC与饱和导水率?
  • 打造高效AI训练与推理服务器:2025年硬件配置与QLoRA实战指南
  • GPT-5.4 + Codex,我是怎么当成“开发外挂”用的(附教程)
  • 如何用5个关键策略彻底解决XCOM 2模组管理的混乱难题?Alternative Mod Launcher深度解析
  • Canvas Quest商业人像生成应用:电商模特图低成本自动化生产方案
  • 从零开始移植FreeRTOS到STM32F4:避开内存分配与优先级配置的那些坑
  • 从SharedPreferences到DataStore:Android存储进化之路
  • OpenHarmony标准系统选Linux内核,为啥首选LTS版本?聊聊4.19、5.10和6.6的适配实战
  • Cobalt视频下载工具:创作者必备的素材管理与备份完整指南
  • 别再死磕点云了!用DeepSDF和PyTorch实现高质量3D模型补全(附代码)
  • Synonyms中文近义词工具包:解决中文语义理解难题的利器
  • Docker 部署 Ollama 实战指南:从镜像拉取到 API 调用的全流程解析
  • Carla 0.9.13编译安装失败?别急,这可能是你的Python环境和网络镜像没设对
  • S32的进阶之路->7,S32DS中FTM中断与PWM结合的实战应用
  • CVAT计算机视觉标注工具深度解析:从数据标注到模型训练的全流程实战
  • OpenClaw+GLM-4.7-Flash:智能客服机器人搭建指南
  • 实时手机检测模型应用场景:打电话检测、安防监控实战案例
  • 告别黑苹果配置噩梦:5大核心优势让开源工具OpCore-Simplify成为新手救星
  • 无刷电机S型与梯形加减速曲线实战:从算法到代码的平滑运动实现
  • 从踩坑到填坑:记录我封装uView Picker多选组件时遇到的3个典型问题及解决方案
  • 避坑指南:TDengine开源版taosdump备份恢复,这些性能问题和‘缺口’你得知道
  • 保姆级教程:用MBD方法搞定纯电动汽车BMS开发,告别手写代码的坑
  • 5个痛点解决:ComfyUI-KJNodes让工作流效率提升60%的实战指南
  • Mellanox ASAP2技术揭秘:如何通过硬件卸载提升OVS性能?
  • 用OpenClaw批量生成博客TDK,轻松提升文章曝光率(万字实操教程)
  • Claude/Codex CLI 搞定!世界级 Agent 工程师只用这几招,效率翻倍!