Golang 常见面试题目解析Golang 常见面试题目解析 交替打印数字和字母 (q001.md); 判断字符串中字符是否全都不同 (q002.md); 翻转字符串 (q003.md); 判断两个给定的字符串排序后是否一致 (q004.md); 字符串替换问题 (q005.md); 机器人坐标计算 (q006.md); 语法题目 (q007.md); 定时与painc恢复 (q0...码说256小于 1 分钟golanggogolangmapinterfacestruct源码面试面试总结
交替打印数字和字母交替打印数字和字母 问题描述 使用两个 goroutine 交替打印序列,一个 goroutine 打印数字, 另外一个 goroutine 打印字母, 最终效果如下: 解题思路 问题很简单,使用 channel 来控制打印的进度。使用两个 channel ,来分别控制数字和字母的打印序列, 数字打印完成后通过 channel 通知字母打印, 字母打印...码说256小于 1 分钟golanggogolangmapinterfacestruct源码面试面试总结
判断字符串中字符是否全都不同判断字符串中字符是否全都不同 问题描述 请实现一个算法,确定一个字符串的所有字符【是否全都不同】。这里我们要求【不允许使用额外的存储结构】。 给定一个string,请返回一个bool值,true代表所有字符全都不同,false代表存在相同的字符。 保证字符串中的字符为【ASCII字符】。字符串的长度小于等于【3000】。 解题思路 这里有几个重点,第一...码说256大约 2 分钟golanggogolangmapinterfacestruct源码面试面试总结
翻转字符串翻转字符串 问题描述 请实现一个算法,在不使用【额外数据结构和储存空间】的情况下,翻转一个给定的字符串(可以使用单个过程变量)。 给定一个string,请返回一个string,为翻转后的字符串。保证字符串的长度小于等于5000。 解题思路 翻转字符串其实是将一个字符串以中间字符为轴,前后翻转,即将str[len]赋值给str[0],将str[0] 赋值...码说256小于 1 分钟golanggogolangmapinterfacestruct源码面试面试总结
判断两个给定的字符串排序后是否一致判断两个给定的字符串排序后是否一致 问题描述 给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。 这里规定【大小写为不同字符】,且考虑字符串重点空格。给定一个string s1和一个string s2,请返回一个bool,代表两串是否重新排列后可相同。 保证两串的长度都小于等于5000。 解题思路 首先要保证字符串长...码说256小于 1 分钟golanggogolangmapinterfacestruct源码面试面试总结
字符串替换问题字符串替换问题 问题描述 请编写一个方法,将字符串中的空格全部替换为“%20”。 假定该字符串有足够的空间存放新增的字符,并且知道字符串的真实长度(小于等于1000),同时保证字符串由【大小写的英文字母组成】。 给定一个string为原始的串,返回替换后的string。 解题思路 两个问题,第一个是只能是英文字母,第二个是替换空格。 源码参考 源码解析...码说256小于 1 分钟golanggogolangmapinterfacestruct源码面试面试总结
机器人坐标问题机器人坐标问题 问题描述 有一个机器人,给一串指令,L左转 R右转,F前进一步,B后退一步,问最后机器人的坐标,最开始,机器人位于 0 0,方向为正Y。 可以输入重复指令n : 比如 R2(LF) 这个等于指令 RLFLF。 问最后机器人的坐标是多少? 解题思路 这里的一个难点是解析重复指令。主要指令解析成功,计算坐标就简单了。 源码参考 源码解析 这...码说256大约 1 分钟golanggogolangmapinterfacestruct源码面试面试总结
语法题目常见语法题目 一 1、下面代码能运行吗?为什么。 解析 共发现两个问题: 1. main 函数不能加数字。 2. new 关键字无法初始化 Show 结构体中的 Param 属性,所以直接对 s.Param 操作会出错。 2、请说出下面代码存在什么问题。 解析: golang中有规定,switch type的`case T1,类型列表只有一个,那么v ...码说256大约 5 分钟golanggogolangmapinterfacestruct源码面试面试总结
常见语法题目 二1、写出下面代码输出内容。 解析: defer 关键字的实现跟go关键字很类似,不同的是它调用的是runtime.deferproc而不是runtime.newproc。 在defer出现的地方,插入了指令call runtime.deferproc,然后在函数返回之前的地方,插入指令call runtime.deferreturn。 goroutin...码说256大约 5 分钟golanggogolangmapinterfacestruct源码面试面试总结
在 golang 协程和channel配合使用写代码实现两个 goroutine,其中一个产生随机数并写入到 go channel 中,另外一个从 channel 中读取数字并打印到标准输出。最终输出五个随机数。 解析 这是一道很简单的golang基础题目,实现方法也有很多种,一般想答让面试官满意的答案还是有几点注意的地方。 1. goroutine 在golang中式非阻塞的 2. channe...码说256小于 1 分钟golanggogolangmapinterfacestruct源码面试面试总结