【Go每日一练】统计字符出现的次数

news/2025/3/10 11:26:37/

👻创作者:丶重明
👻创作时间:2025年3月9日
👻擅长领域:运维

目录

  • 1.😶‍🌫️题目:
  • 2.😶‍🌫️资源:
  • 3.😶‍🌫️代码:
  • 4.😶‍🌫️输出:
  • 5.😶‍🌫️解析:
  • 6.😶‍🌫️扩展:

1.😶‍🌫️题目:

编写一个 Go 函数,接收一个字符串,返回该字符串中每个字符出现的次数,返回值为一个映射(map)类型。

2.😶‍🌫️资源:

dwadaw达瓦官方阿迪王迪王是是是哇

3.😶‍🌫️代码:

package mainimport ("fmt"
)func countCharacters(s string) map[rune]int {charCount := make(map[rune]int)for _, char := range s {charCount[char]++}return charCount
}
func main() {input := "dwadaw达瓦官方阿迪王迪王是是是哇"counts := countCharacters(input)for char, count := range counts {fmt.Printf("'%c': %d\n", char, count)}
}

4.😶‍🌫️输出:

> go run .\4.gotest.go
'阿': 1
'王': 2
'w': 2
'a': 2
'达': 1
'瓦': 1
'官': 1
'方': 1
'迪': 2
'是': 3
'd': 2
'哇': 1

5.😶‍🌫️解析:

func countCharacters(s string) map[rune]int {...}

定义一个名为countCharacters的函数,接收一个字符串s作为参数,并返回一个map[rune]int类型的结果

map[rune]int表示一个键为rune类型,值为 int类型的映射

rune表示一个 Unicode 码点,用于处理Unicode 字符(如中文、表情符号等)

   charCount := make(map[rune]int)

使用make创建一个空的map[rune]int类型的映射charCount,用于储存每个字符及出现的次数

    for _, char := range s {charCount[char]++}

使用for循环遍历字符串s中的每个字符

charCount[char]++对当前字符char在映射charCount中的计数加1

	input := "dwadaw达瓦官方阿迪王迪王是是是哇"counts := countCharacters(input)

定义一个字符串类型的变量input,其初始值为“ ”内内容

调用函数countCharacters将字符串input作为参数传入,将返回的值赋值给变量counts

    for char, count := range counts {fmt.Printf("'%c': %d\n", char, count)}

使用for...range遍历counts映射中的每个键值对,其中char是字符,count是出现的次数

然后使用fmt.Printf将字符和出现的次数打印出来

6.😶‍🌫️扩展:

如果有一段话是英文句子,该怎么统计:

hello world, go python java go world world

代码:

package mainimport ("fmt""strings"
)func countCharacters(s string) map[string]int {wordCount := make(map[string]int)// 将字符串以空白为分隔符分区words := strings.Fields(s)for _, word := range words {wordCount[word]++}return wordCount
}
func main() {input := "hello world, go python java go world world"counts := countCharacters(input)for word, count := range counts {fmt.Printf("\"%s\": %d\n", word, count)}
}

输出:

> go run .\4.gotest.go
"world,": 1
"go": 2
"python": 1
"java": 1
"world": 2
"hello": 1

其他扩展方向,请自行尝试:

  • 从外部导入文件并统计
  • 大小写标准化,比如helloHELLO视为一个单词
  • 忽略文中的标点符号
  • 按出现次数的多少进行排序

http://www.ppmy.cn/news/1578062.html

相关文章

[20250304] 关于 RISC-V芯片 的介绍

[20250304] 关于 RISC-V芯片 的介绍 1. 调研报告 一、RISC-V 芯片结构分析 RISC-V 芯片基于开源指令集架构(ISA),其核心优势在于模块化设计与高度灵活性。 指令集架构 基础指令集:包含 RV32I(32 位)、R…

envsetup和python venv

了解!虽然你已熟悉基本用法,但我们可以更聚焦场景和实际意义,结合嵌入式开发中可能的用例来深入探讨 venv 的作用。 Python venv 的核心本质 venv(虚拟环境)的核心是隔离性,它通过创建独立的 Python 运行环…

国科大——数据挖掘(0812课程)——考试真题

前沿: 此文章记录了国科大数据挖掘(0812)课程的考试真题。 注: 考试可以携带计算器,毕竟某些题需要计算log,比如:决策树等。 2016年 1. Suppose a hospital tested the age and body fat for …

降级选型啊

推荐替代方案 Resilience4j(首选) 轻量级容错库(约20KB核心依赖) 核心优势: 100%纯Java实现,无额外运行时开销 支持CircuitBreaker/Bulkhead/Retry/TimeLimiter等注解 完美适配Spring Boot 2.1&#xff08…

React:类组件(上)

kerwin老师我来了 类组件的创建 class组件&#xff0c;js里的类命名首字符大写&#xff0c;类里面包括构造函数&#xff0c;方法 组件类要继承React.Component才有效 必须包含render方法 import React from react class App extends React.Component{render() {return <…

MySQL|MySQL 中 `DATE_FORMAT()` 函数的使用

文章目录 概述方法签名格式化字符基本用法实际应用案例 示例1&#xff1a;显示日期和星期几示例2&#xff1a;仅显示日期示例3&#xff1a;按周统计订单数量 注意事项结论 概述 DATE_FORMAT() 是 MySQL 中的一个内置函数&#xff0c;用于格式化日期和时间数据。它可以根据…

阿里云操作系统控制台——解决服务器磁盘I/O故障

目录 引言 需求介绍 操作系统使用实例 获得的帮助与提升 建议 引言 你的云服务器是否遇到过系统响应变慢、服务超时&#xff0c;或者进程卡顿、磁盘空间不足、系统日志频繁告警的问题&#xff1f;这些情况在日常运维中并不少见&#xff0c;尤其是在 高负载或资源紧张时&a…

交大智邦后端Java笔试题

交大智邦后端Java笔试题 简答题 只要一个类加上了Component注解&#xff0c;就一定能成为一个Spring Bean吗&#xff1f;如果不是&#xff0c;请举出反例。 不一定 扫描范围不包括 com.code.lab.web.component 或者被 ComponentScan 显式排除 通过 excludeFilters 手动排除特定…