go 语言圣经练习解答 -- 第四章 (关闭)

本贴最后更新于 1712 天前,其中的信息可能已经时移世易

go 语言圣经(The Go Programming Language)第四章练习题答案

练习 4.1: 编写一个函数,计算两个 SHA256 哈希码中不同 bit 的数目。(参考 2.6.2 节的 PopCount 函数。)

解题思路

  • 循环字节数组
  • 循环字节 bit,对比是否相同

练习 4.2: 编写一个程序,默认打印标准输入的以 SHA256 哈希码,也可以通过命令行标准参 数选择 SHA384 或 SHA512 哈希算法。

解题思路

  • 获取命令行输入的参数
  • 通过命令行参数返回值
> 实际效果

image.png

练习 4.3: 重写 reverse 函数,使用数组指针代替 slice。

解题思路(无)

练习 4.4: 编写一个 rotate 函数,通过一次循环完成旋转。

解题思路

  • 从新创建一个数组,新数组下标为原数组下标加上偏移值
  • 如果超出最大长度则从最左边开始

练习 4.6: 写一个函数在原地完成消除[]string 中相邻重复的字符串的操作。

解题思路

  • 原地完成消除 / 相邻重复
  • 原地消除表示必须在原有的数组上操作
  • 遇到相同的先前移一位
  • 下标保持不动继续检测当前位置是否跟下一位重复

练习 4.6: 编写一个函数,原地将一个 UTF-8 编码的[]byte 类型的 slice 中相邻的空格(参考

unicode.IsSpace)替换成一个空格返回

解题思路

  • 基本一 4.5 一致,只是判断字母变成了判断空格

练习 4.7: 修改 reverse 函数用于原地反转 UTF-8 编码的[]byte。是否可以不用分配额外的内

存?

解题思路

  • 与原本的 reverse 基本一致
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    491 引用 • 1383 回帖 • 370 关注
  • 学习

    “梦想从学习开始,事业从实践起步” —— 习近平

    160 引用 • 470 回帖
  • 教程
    139 引用 • 476 回帖 • 7 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...