Exercise: Maps (单词统计)

A Tour of Go

Exercise: Maps

https://tour.golang.org/moretypes/23

WordCount (单词统计) 是一个很经典的小程序了,在很多编程入门教程中都会出现。

这道题比较简单,但也有一些知识点值得一提。

上面这个答案我是参考了网上别人写的。但在参考别人之前我也自己解题了,其中,唯一不同之处是这一句:

m[word]++

我本来写的是:

_, ok := m[word]
if ok {
    m[word]++
} else {
    m[word] = 1
}

这是因为我之前学过别的动态类型编程语言,如果读取一个不存在的 key, 很可能返回 nil, 因此不能直接进行计算。

但是 golang 是静态类型语言,事先已经定义了 map 里的元素类型是 int, 因此读取一个不存在的 key 返回 0, 可以直接计算。

(如果事先定义了元素类型为 bool, 则默认返回 false, 如果是 string 则返回空字符串 "")

另外,这道题提供了一个测试函数 wc.Test, 这个函数也很简单,值得看一看,有助于初步学习测试程序的写法。

https://github.com/golang/tour/blob/master/wc/wc.go

时间: 2024-10-26 02:03:36

Exercise: Maps (单词统计)的相关文章

运行Hadoop自带的wordcount单词统计程序

0.前言 前面一篇<Hadoop初体验:快速搭建Hadoop伪分布式环境>搭建了一个Hadoop的环境,现在就使用Hadoop自带的wordcount程序来做单词统计的案例. 1.使用示例程序实现单词统计 (1)wordcount程序 wordcount程序在hadoop的share目录下,如下: [[email protected] mapreduce]# pwd /usr/local/hadoop/share/hadoop/mapreduce [[email protected] mapr

《C++ Primer》P314中使用insert重写单词统计程序的扩展

编写程序统计并输出所读入的单词出现的次数 想与习题10-1相结合,也就是先输入几组 map<string, int>类型,存入vector中. 再输入单词word,如果已经存在则在key对应的value+1 如果不存在,则插入并使得其value为1. 之前的问题是->输入了一次之后,再要输入单词word,读不进.(呵呵 果然小白) 看到11章之后,知道要用语句cin.clear;使得输入流重新有效. 再然后 重新熟悉了iterator对map的操作. #include <iostr

Exercise: Maps

Exercise: Maps 题目: Implement WordCount. It should return a map of the counts of each “word” in the string s. The wc.Test function runs a test suite against the provided function and prints success or failure. You might find strings.Fields helpful. 代码

一步一步写算法(之单词统计)

原文:一步一步写算法(之单词统计) [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 在面试环节中,有一道题目也是考官们中意的一道题目:如果统计一段由字符和和空格组成的字符串中有多少个单词? 其实,之所以问这个题目,考官的目的就是想了解一下你对状态机了解多少. (1) 题目分析 从题目上看,如果对一个字符串进行处理,那么可以有下面几种情形:初始状态,字符状态,空格状态,结束状态.那么这几种状态之间应该怎么迁移呢? 初始状态: 如果输入符号是

第三次作业(字符,单词统计)

题目要求:从文件中读取字符,然后统计字符的数目,和单词的数目. 首先打开一个文件,对里面存的东西进行统计,刚开始判断是否为单词的组成部分: 代码如下: FILE *fp;//文件指针 char c; //文件字符读取存储 fp = fopen("D:\\a\\a.txt", "r"); if (fp == NULL) { printf("文件打开失败"); return 0; } while (feof(fp) != 1) { c = fgetc

MapReduce 单词统计案例编程

MapReduce 单词统计案例编程 一.在Linux环境安装Eclipse软件 1.   解压tar包 下载安装包eclipse-jee-kepler-SR1-linux-gtk-x86_64.tar.gz到/opt/software目录下. 解压到/opt/tools目录下: [[email protected] tools]$ tar -zxf /opt/sofeware/eclipse-jee-kepler-SR1-linux-gtk-x86_64.tar.gz -C /opt/tool

hive学习之WordCount单词统计

看hive目录下就可以了,程序在hdfs里创建一个hive的大文件夹,相当于数据库吧.上面就是一个完整的利用hive来做单词统计,其中的优劣也能看出一点.

华为历年试题(单词统计3)

单词统计 题目描述: 输入一段英文文本,用程序统计出现频率最高和最低的两个单词; 英文文本中仅出现这四类字符:空格( ).英文逗号(,).英文句号(.).英文大小写字母(a-z.A-Z) 单词之间的分隔符仅考虑这三种:空格( ).英文逗号(,).英文句号(.); 仅大小写不同的单词算同一个单词: 如果两个单词出现次数相同,则在文本中首次出现的单词优先返回. 返回的单词统一用小写字母返回 例如: 输入字符串“Hello world, i said hello world to the world”

手动实现一个单词统计MapReduce程序与过程原理分析

[toc] 手动实现一个单词统计MapReduce程序与过程原理分析 前言 我们知道,在搭建好hadoop环境后,可以运行wordcount程序来体验一下hadoop的功能,该程序在hadoop目录下的share/hadoop/mapreduce目录中,通过下面的命令: yarn jar $HADOOP_HOME/share/hadoop/mapreducehadoop-mapreduce-examples-2.6.4.jar wordcount inputPath outPath 即可对输入文