牛客 算法题 【HJ102 字符统计】 golang实现

题目

HJ102 字符统计

sss

golang代码实现

package mainimport ("bufio""fmt""os""sort"
)func main() {// str_arry :=make([]string, 0)str_map := make(map[rune]int)result_map := make(map[int][]string)scanner := bufio.NewScanner(os.Stdin)for scanner.Scan() {str := scanner.Text()for _, r := range str {_, ok := str_map[r]if ok {//删除srt_tmp := result_map[str_map[r]]for i, s_tmp := range srt_tmp {if s_tmp == string(r) {if i < len(srt_tmp)-1 {srt_tmp = append(srt_tmp[:i], srt_tmp[i+1:]...)} else {srt_tmp = srt_tmp[:i]}}}result_map[str_map[r]] = srt_tmpstr_map[r] += 1//新增到指定数组中result_map[str_map[r]] = append(result_map[str_map[r]], string(r))} else {str_map[r] = 1result_map[1] = append(result_map[1], string(r))}}}lenstr:=len(result_map)for i:=lenstr;i>=1;i--{arr :=result_map[i]if len(arr)>0{sort.Sort(byASCII(arr))for _,v:=range arr{fmt.Printf("%s", v)}}}
}type byASCII []stringfunc (s byASCII) Len() int {return len(s)
}func (s byASCII) Swap(i, j int) {s[i], s[j] = s[j], s[i]
}func (s byASCII) Less(i, j int) bool {for k := 0; k < len(s[i]) && k < len(s[j]); k++ {if s[i][k] != s[j][k] {return s[i][k] < s[j][k]}}return len(s[i]) < len(s[j])
}

结果

result

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

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

相关文章

基于C++实现水仙花数

1、水仙花数的连营 1.1、水仙花数 在学习程序设计课程时&#xff0c;大多数读者一定采用循环结构编写过求解水仙花数的程序。 【实例 1-1】水仙花数 一个三位整数&#xff08;100&#xff5e;999&#xff09;&#xff0c;若各位数的立方和等于该数自身&#xff0c;则称其为“…

SAP创建ODATA服务-Structure

SAP创建ODATA服务-Structure 1、创建数据字典 进入se11创建透明表ZRICO_USR,并创建对应字段 2、创建OData service 首先创建Gateway service project&#xff0c;事务码&#xff1a;SEGW&#xff0c;点击Create Project 按钮 Gateway service Project分四个部分&#xff1a…

JVS-rules规则引擎导出与导入,确保业务连续性的关键

在复杂的系统环境中&#xff0c;规则和配置的迁移、备份及共享成为了确保业务连续性和一致性的关键过程。不同的环境可能需要相同的规则和配置数据&#xff0c;或者我们可能需要备份这些数据以防万一。JVS规则引擎提供了规则的导出与导入功能&#xff0c;使用户能够在多个环境间…

机器学习的复习笔记2-回归

一、什么是回归 机器学习中的回归是一种预测性分析任务&#xff0c;旨在找出因变量&#xff08;目标变量&#xff09;和自变量&#xff08;预测变量&#xff09;之间的关系。与分类问题不同&#xff0c;回归问题关注的是预测连续型或数值型数据&#xff0c;如温度、年龄、薪水…

规则引擎Drools使用,0基础入门规则引擎Drools(四)WorkBench控制台

文章目录 系列文章索引八、WorkBench简介与安装1、WorkBench简介2、安装 九、WorkBench使用方式1、创建空间2、创建项目3、创建数据对象4、创建DRL规则文件5、创建测试场景6、设置KieBase和KieSession7、编译、构建、部署8、在项目中使用部署的规则 系列文章索引 规则引擎Droo…

电商数据采集及数据监测的关注重点

当品牌需要做分析报告时&#xff0c;需要用到电商数据&#xff0c;所以分析的前提是数据采集&#xff0c;只有采集的数据越准确&#xff0c;分析的报告才有价值&#xff0c;同样&#xff0c;品牌在做数据监测的基础也是采集&#xff0c;如电商价格监测&#xff0c;需要采集到准…

编译器设计03-后端概述

后端处理概述 后端处理&#xff1a;中间代码生成&#xff0c;目标代码生成&#xff0c;贯穿各个阶段的优化。 后端处理犹如得出中文文章&#xff0c;当阅读完英语文章后&#xff0c;你的脑海中就有清晰的“中间代码”了&#xff0c;想写作的时候就心中有数&#xff0c;核心论…

全面探讨HTTP协议从0.9到3.0版本的发展和特点

前言&#xff1a; 最近的几场面试都问到了http的相关知识点&#xff0c;博主在此结合书籍和网上资料做下总结。本篇文章讲收录到秋招专题&#xff0c;该专栏比较适合刚入坑Java的小白以及准备秋招的大佬阅读。 如果文章有什么需要改进的地方欢迎大佬提出&#xff0c;对大佬有帮…

Ubuntu安装Vmtools (最新安装教程)

Ubuntu安装Vmtools 1. 设置root用户密码2. 切换root用户3. 安装vmools 1. 设置root用户密码 出现认证失败&#xff08;Authentication failure&#xff09;的原因有两种&#xff0c;要么是密码输入错误&#xff0c;要么是新安装的系统还没有给root设置密码&#xff0c;&#x…

NX二次开发UF_CURVE_ask_line_data 函数介绍

文章作者&#xff1a;里海 来源网站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan UF_CURVE_ask_line_data Defined in: uf_curve.h int UF_CURVE_ask_line_data(tag_t line, UF_CURVE_line_p_t line_coords ) overview 概述 Returns the coordinates of a line w…

js基础知识

1. beforeCreate 初始化界面前 : 在当前阶段data、methods、computed以及watch上的数据和方法都不能被访问。 2. created 初始化界面后 : 在实例创建完成后发生&#xff0c;当前阶段已经完成了数据观测&#xff0c;也就是可以使用数据&#xff0c;更改数据&#xff0c;在这里更…

7天用Go实现Web框架Gee教程

本文是学习模仿自https://geektutu.com/post/gee.html 在此基础上&#xff0c;加入自己的学习过程与理解 框架 设计框架之前&#xff0c;需要知道为什么需要使用框架&#xff0c;框架能解决什么问题。只有明白了这一点&#xff0c;才能设计出框架中的功能。 通俗来讲&#…

基于springboot实现实习管理系统的设计与实现项目【项目源码+论文说明】

基于sprinmgboot实现实习管理系统的设计与实现演示 摘要 随着信息化时代的到来&#xff0c;管理系统都趋向于智能化、系统化&#xff0c;实习管理也不例外&#xff0c;但目前国内仍都使用人工管理&#xff0c;市场规模越来越大&#xff0c;同时信息量也越来越庞大&#xff0c;…

Unity 关于Input类的使用

Input类在我们游戏开发中需要获取外设设备&#xff08;比如键盘、鼠标、游戏手柄等&#xff09;进行交互时&#xff0c;基本都会用到。 它主要有以下一些常用的方法。 1、GetKey(KeyCode key)&#xff0c;检测按键是否被按下&#xff1b; 2、GetKeyDown(KeyCode key)&#x…

ubuntu2204 防火墙ufw限制某ip对某端口的访问

公司内部有个ip为10.10.10.1的网关&#xff0c;每天定时端口扫描&#xff0c;然后扫描发送的数据包http server解析不了&#xff0c;日志里就会记录这个错误&#xff0c;有点烦&#xff0c; 用防火墙过滤一下 ubuntu的防火墙命令是 ufw&#xff0c; 跟ufo挺像的&#xff0c;也…

基于helm的方式在k8s集群中部署gitlab - 升级(三)

接上一篇 基于helm的方式在k8s集群中部署gitlab - 部署&#xff08;一&#xff09;&#xff0c;本篇重点对gitlab在k8s集群中进行升级 文章目录 1. gitlab 升级1.1 获取release1.2 下载目前版本的gitlab charts1.3 获取当前的values文件1.4 升级 2. gitlab数据库升级2.1 备份数…

SSRF漏洞防御:黑白名单的编写

文章目录 SSRF漏洞防御:黑白名单的编写黑名单的制作白名单的制作 SSRF漏洞防御:黑白名单的编写 以pikachu靶场中SSRF(crul)为例我们可以看到未做任何防御 我们查看源代码 黑名单的制作 思路: 什么内容不能访问 构造代码 $xyarray("file" > "",&q…

rdf-file:读写示例

<dependency><groupId>com.alipay.rdf.file</groupId><artifactId>rdf-file-core</artifactId><version>2.2.10</version> </dependency>一&#xff1a;读 一&#xff1a;写 写文件之正常写 协议布局模板 使用内置的布局文…

关于一个类中引用两外一个类中的变量和方法,一个技巧可以提高开发效率

import static com.xx.xx.util.ext.xx.toJson; import static com.xx.xx.util.ext.smf.Cert.certMgrClient; 第一个引用一个方法&#xff0c;第二个引用一个变量&#xff0c; 引用后就可以直接通过变量名或者方法名就行使用&#xff0c;很方便&#xff0c;不要通过class.方式调…

maven中scope和optional区别

文章目录 1. Scope&#xff08;作用范围&#xff09;&#xff1a;2. Optional&#xff08;可选项&#xff09;&#xff1a; 1. Scope&#xff08;作用范围&#xff09;&#xff1a; Maven的<scope>元素用于指定依赖项的作用范围&#xff0c;即依赖项在构建和运行时的可见…