牛客 算法题 【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.hqwc.cn/news/221852.html

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

相关文章

大公司为什么喜欢centos系统写爬虫?

CentOS是一个基于Red Hat Enterprise Linux&#xff08;RHEL&#xff09;源代码构建的开源操作系统&#xff0c;它受到大企业喜欢大多数因为他系统的稳定性&#xff0c;安全性以及兼容性等。可以为企业提供更多的商业支持。以我个人为例&#xff0c;公司在做爬虫数据抓取多是采…

[⑥ADRV902x]: 软件系统初始化流程学习

前言 本篇博客主要记录ADRV902x参考软件中对ADRV902x系统的初始化流程&#xff0c;使用API函数来实现transceiver的配置&#xff0c;校准和控制等。官方将整个系统初始化称之为multichip synchronization initialization (MCS) sequence&#xff0c;主要分成PreMcsInit&#x…

jQuery_07 函数的使用

在jQuery中&#xff0c;如何使用函数呢&#xff1f; 1.基本函数 函数(常用的) 其实有很多函数&#xff0c;但是我们只需要掌握常用的函数即可 1.val 操作dom对象的value val() 没有参数 获取dom数组中第一个dom对象的value值 val(value) 有参数 设置dom数组中所有dom对象的…

企业数据建设再思考

近些年企业数据建设进入深水区&#xff0c;近六成受访企业高管表示在未来一到两年会增加数据建设的投入。 数据建设得分最明显的三项指标分别为&#xff1a;开拓数据变现模式、实现数据流与业务流程在各部门间的无缝衔接、搭建基于数据分析的决策体系与管控体系。 因此&#…

webshell之编码免杀

Unicode编码 jsp支持unicode编码&#xff0c;如果杀软不支持unicode查杀的话&#xff0c;基本上都能绕过 注意这里的\uuuu00可以换成\uuuu00uuu...可以跟多个u达到绕过的效果 将代码&#xff08;除page以及标签&#xff09;进行unicode编码&#xff0c;并条件到<%%>标签…

请停止在简历上写: 精通Python, 会害了你

离了个大谱&#xff01; 瑞银暑期实习生都要求精通Python? 你以为能用Python演示“hello world" 就是精通Python了么&#xff1f; too yang too天真 一、不会Python的我们不要 1、瑞士银行 瑞士银行的暑期实习岗位JD中要求应聘者精通编程语言&#xff0c;特别是C或…

SpringBoot中如何优雅地使用重试

1 缘起 项目中使用了第三方的服务&#xff0c; 第三方服务偶尔会出现不稳定、连接不上的情况&#xff0c; 于是&#xff0c;在调用时为了保证服务的相对高可用&#xff0c;添加了超时连接重试&#xff0c; 当连接第三方服务超时时&#xff0c;多重试几次&#xff0c;比如3次&a…

C语言基础篇5:指针(一)

指针是C语言的核心、精髓所在&#xff0c;用好了指针可以在C语言编程中起到事半功倍的效果。指针一方面可以提高程序的编译效率和执行速度&#xff0c;而且还可以通过指针实现动态的存储分配&#xff0c;另一方面使用指针可使程序更灵活&#xff0c;便于表示各种数据结构&#…

Chrome浏览器显示overleaf布局混乱

Chrome浏览器显示overleaf布局混乱 Abstract overleaf在mac chrome上布局显示混乱&#xff0c;如下图&#xff1a; 最终解决方案是更换浏览器至safari&#xff0c;结果就显示正常了。 总结反思 不在一个地方死磕&#xff0c;有的时候可以换个思路解决问题。

车联网安全漏洞管理深度解读

2021-09-17 19:38:20 来源: 中国大数据平台 今日&#xff08;2021年9月16日&#xff09;&#xff0c;工信部发布《关于加强车联网网络安全和数据安全工作的通知》&#xff08;下称“《通知》”&#xff09;&#xff0c;强调加强智能网联汽车、车联网网络、车联网服务平台以…

【2021研电赛】基于EAIDK-310的行人识别和红绿灯识别小车by IFIC_Team

本作品介绍参与极术社区的有奖征集|分享研电赛作品扩大影响力&#xff0c;更有重磅电子产品免费领取! 团队介绍 参赛单位&#xff1a;西安交通大学 参赛队伍&#xff1a;IFIC_Team 指导教师&#xff1a;司刚全教授 参赛队员&#xff1a;李荆辉 王宁 童道心 1.作品简介 近年来…

【腾讯云云上实验室】用向量数据库—实践相亲社交应用

快速入口 &#x1f449;向量数据库_大模型知识库_向量数据存储_向量数据检索- 腾讯云 (tencent.com) 文章目录 前言1. 向量数据库概念及原理1.1 向量数据库概念1.2 向量数据库核心原理1.3 向量数据库优缺点1.4 向量数据库与传统数据库的区别 2. 腾讯云向量数据库的基本特性及优…