华为机试,删除出现次数最少的字符串,不改变原来的顺序

华为机试在线训练–牛客网(python)第三部分 华为机试在线训练–牛客网(python)第三部分(21~30)第二十一题:简单密码破解 题目描述 密码是我们生活中非常重要的东东,我们的那么一点不能说的秘密就全靠它了。哇哈哈. 接下来渊子要在密码之上再加一套密码,虽然简单但也安全。 假设渊子原来一个BBS上的密码为zvbo9441987,为了方便记忆,他通过一种算法把这个密码变换成YUANzhi1987,这个密码是他的名字和出生 阅读详情

在这里插入图片描述
这道题有点坑的地方是,输出的类型也会检查。不能是视觉上对的上就行。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;

/**
 * @author chaoxi
 * @create 2021-07-25 10:40
 */
public class Main {
    public static void main(String[] args) throws IOException {


        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s = br.readLine();
        while(s!=null && s.length()!=0){
            delmin(s);
            s = br.readLine();
        }
    }



    public static void delmin(String string){
        char[] chars = string.toCharArray();
        char[] temp_char=new char[chars.length];
        for (int w = 0; w <chars.length ; w++) {
            temp_char[w]=chars[w];
        }


        Arrays.sort(chars);
        string=String.valueOf(chars);


        HashSet<String> strings = new HashSet<>();
        for (int i = 0; i < chars.length; i++) {
            strings.add(String.valueOf(chars[i]));
        }

        Iterator<String> iterator = strings.iterator();
        int[] num_char = new int[strings.size()]; //定义一个数组用于存储每个字符的个数
        int i =0;
        while (iterator.hasNext()){
            String subString =iterator.next();
            num_char[i] = string.lastIndexOf(subString) - string.indexOf(subString) +1;
            i++;
        }




        int[] newnum_char= new int[num_char.length];
//            System.out.println(newnum_char.length);
        for (int j = 0; j < newnum_char.length; j++) {
            newnum_char[j]=num_char[j];
        }
        Arrays.sort(num_char); //个数的自然排序。第一个值就是最小值,也就是字符出现的次数

        for (int k = 0; k < chars.length; k++) {
            Iterator<String> iterator1 = strings.iterator();
            int m = 0;
            while (iterator1.hasNext()){
                String tempstr=iterator1.next();

                if(tempstr.equals(String.valueOf(temp_char[k])) && newnum_char[m]==num_char[0]){
                    temp_char[k]=' ';
                }
                m++;
            }

        }

        StringBuffer stringBuffer = new StringBuffer();

        for (int j = 0; j < temp_char.length; j++) {
            if (temp_char[j]==' ')
                continue;
            stringBuffer.append(temp_char[j]);
        }
        System.out.println(stringBuffer.toString());

    }

}


在这里插入图片描述
我觉得自己的优势就是,运行时间不长,并且内存消耗并不算多。

【华为OD机试真题 Python语言】378、删除字符串中出现次数最少的字符 | 机试真题+思路参考+代码解析 >实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除 >  输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序 阅读详情

相关推荐

华为OD机试题,用 Java 解【删除字符串中出现次数最少的字符】问题

从输入的字符串中找出出现次数最少的字符,并将其从字符串中删除,然后输出删除后的字符串。用到的集合是 HashMap,知识点是 Map 的 getOrDefault()方法和 String 的 toCharArray()方法。实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。删除字符串中出现次数最少的字符后的字符串。

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 3300

【算法】删除字符串中出现次数最少的字符

题目描述 实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。

欢迎关注【微信公众号】测试开发Guide,从功能测试进阶测试开发 1068

2023华为OD机试真题 C语言 实现【删除字符串中出现次数最少的字符】

实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。 输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。

MISAYAONE的博客 2918

删除字符串中出现次数最少的字符【JS,Map排序,正则】

删除字符串中出现次数最少的字符_牛客题霸_牛客网 (nowcoder.com)题目几个重点 刷题总结 1.初始化各个字符个数 直接通过while循环遍历value原始字符串,,因为value对应位置i不存在是会以存在,while中会自动转换成boolean类型的值,对应的undefined的就是falsy(假值) 2.map排序 map排序大致思想:通过转换成数组,调用数组的sort,并重写sort默认排序规则 重写数组排序规则 按value排序——降序 按key排序 3.replace替换所有——正

qq_22841387的博客 1325

用C++解决华为OD机试考题,是真的高效,真的强,来吧,清单奉上,祝你上岸

华为 OD 机试题清单(机试题库还在逐日更新) 直接在本页使用 Ctrl+F,输入题目名称就可以进行检索。

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 1万+

【华为OD机试真题 Java语言】378、删除字符串中出现次数最少的字符 | 机试真题+思路参考+代码解析

>实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除 >  输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序

KJ.JK 1033

算法题:删除字符串中出现次数最少的字符

我的思路:由于需要删除出现次数最少的字符,所以我的第一反应就是将字符串先转为数组,然后将相同的字符串组合,通过冒泡排序,将数组按照字符串长度从小到大排序。之后,通过遍历找出字符串长度最小的元素长度,判断冒泡排序后的数组中的值是否等于最小元素的长度,若相等,则将其删除。

qq_62089165的博客 561

2023华为OD机试真题 Java 实现【删除字符串中出现次数最少的字符】

实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。 输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。

MISAYAONE的博客 618

牛客网华为机试【删除字符串中出现次数最少的字符】

文章目录题目描述题目分析java 代码结果 题目描述 实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。 输入描述: 字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节。 输出描述: 删除字符串中出现次数最少的字符后的字符串。 示例 输入 abcdd 输出 dd 题目分析 因为字符串中只...

FBB360JAVA的博客 667

删除字符串中出现次数最少的字符

删除一个字符串中出现次数最少的字符,样例输入:abcdd,样例输出:dd

ubuntu18.04安装R——无法连接上 dl.google.com:80 (6.6.6.6),连接超时&&E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

安装R的时候,sudo apt update 的时候出现错误: 查资料要修改/etc/apt/sources.list.d/google-chrome.list 文件 原来是: deb http://dl.google.com/linux/chrome/deb/ stable main 改为: deb [arch=amd64] http://dl.google.com/linux/chrom...

许希律的博客 4348

华为机试 删除字符串中出现次数最少的字符

题目描述 实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。 注意每个输入文件有多组输入,即多个字符串用回车隔开 输入描述: 字符串只包含小写英文字母,不考虑非法输入,输入的字符串长度小于等于20个字节。 输出描述: 删除字符串中出现次数最少的字符后的字符串。 示例1 输入 abcdd aabcddd 输出 dd aaddd 题目链接:https://www.nowcoder.com/practic.

salmonwilliam的博客 348

SceneSplat

目标:训练一个网络,输入高斯参数 → 输出与自然语言空间对齐的特征。考虑到标注语义的 3DGS 数据有限,作者设计了。策略,让模型在无标签场景上学到有用表征。都有一个与自然语言对齐的语义特征。这是整个方法的第一步,目标是让。

weixin_61091146的博客 1284

华为机试HJ23删除字符串中出现次数最少的字符

实现删除字符串中出现次数最少的字符,若出现次数最少的字符有多个,则把出现次数最少的字符都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。数据范围:输入的字符串长度满足 1≤𝑛≤20 ,保证输入的字符串中仅出现小写字母字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节。删除字符串中出现次数最少的字符后的字符串。输入:aabcddd输出:aaddd。

weixin_43836337的博客 661

Sentence-BERT 语义相似度双塔模型

论文介绍 发表:2019,EMNLP 论文题目:《Sentence-BERT:sentence embeddings using siaese BERT-networks》 论文地址:https://arxiv.org/abs/1908.10084 Github:https://github.com/UKPLab/sentence-transformers 适用领域: 句向量生成 语义相似度计算 语义搜索 无监督任务(聚类) 1 概述 在20年之前的各种预训练模型中,比如bert,XLNet,Alb

weiyaner的博客 9193

微信取证不求人:最新免费DAT解码工具使用指南(含闪退解决方案)

本文提供了一份详细的微信DAT文件免费解码工具使用指南。针对用户常见的图片无法查看问题,手把手教学如何安全获取并操作开源图形化工具,将加密的DAT文件一键还原为JPG/PNG图片。文章重点剖析了DAT文件的加密原理,并给出了详细的步骤解决工具运行中最常见的“程序闪退”等疑难杂症,帮助普通用户轻松完成微信取证。

m0n1o2p的博客 479

华为OD机试 - 删除字符串中出现次数最少的字符 (Java 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题。

JavaPub 845

AUTOSAR从入门到精通-复杂设备驱动(CDD)

CDD是复杂设备驱动的首字母缩写主要为驱动程序或复杂驱动程序,但不限于驱动程序。复杂驱动程序是一种未被AUTOSAR标准化的软件实体,可以通过AUTOSAR接口和/或基本软件模块api访问。 CDD是位于基础软件复杂驱动层的特定模块,与标准BSW模块或Rte交互。 CDD可能需要与分层软件体系结构的模块连接 分层软件架构的模块可能需要连接到CDD CDD可能需要通过Rte连接swc。

getusushu的博客 4192

华为机试HJ23 删除字符串中出现次数最少的字符

首先看一下题。

bingw0114的博客 797

BES2700的PMU

BES2700ZP-BES2700芯片的PMU架构分析摘要:本文档分析了BES2700芯片的电源管理单元(PMU)架构。实际应用中仅需为VBAT引脚供电,其余电源均由芯片内部PMU提供。文档包含架构示意图、问题列表和参考链接,涉及PMU工作原理、外部供电要求等关键技术点。待解决问题包括具体供电参数和内部电源转换机制等。通过添加日志信息和代码片段,为开发人员提供了调试PMU功能的实用方法。

云淡风轻 117

基于SAHI算法优化YOLOv8的小目标检测性能研究

SAHI(SliceAwareHyperInference)是一种推理优化算法,通过将大图切片为小块并分别推理的方式,实现更精细的小目标检测。提升小目标检测精度:切片后的小目标在每个小块中占比更大,模型能够更好地聚焦。兼容性强:可直接集成到现有目标检测框架中(如YOLO系列、Detectron2等)。支持大分辨率图片和视频推理:减少硬件对大图推理的限制。本文详细探讨了如何通过SAHI(切片辅助超推理算法)结合YOLOv8模型,有效提升小目标检测性能,尤其是在高分辨率图片和视频场景中表现优异。

博客 2371

华为机试HJ23:删除字符串中出现次数最少的字符

C++实现——删除字符串中出现次数最少的字符

翟天保的博客 1万+

手把手教你学Simulink——高频隔离型双向DC-AC逆变器的建模与仿真

本文系统讲解高频隔离型双向DC-AC逆变器的Simulink建模与仿真,基于DAB+全桥逆变两级拓扑,详述DAB移相控制原理、双闭环控制策略及分步仿真搭建流程。重点涵盖电路建模、控制环设计、参数设置与常见问题调试,强调模块化分步验证与分层控制逻辑,实现安全、高效、灵活的双向能量流动仿真,适用于储能、微电网等场景的系统开发与验证。

MHD0815的博客 107
上一篇: 不调用Java.Arrays.sort()进行字符串的字典排序
下一篇: JVM学习,来源于狂神说
Smallcloudy
博客等级 码龄10年 53粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值