ARTS 第4周分享
[TOC]
Algorithm
1021. Remove Outermost Parentheses
难度:[easy]
[思路]
- 先解析成最原始的括号
- 遍历这个字符串, 用一个int变量flag标记是否匹配成一个原始括号:如果为左括号,flag加1;如果为右括号,flag减1;如果flag为零,则匹配成一个原始括号
- 用一个切片[]byte存储遍历的每一个字符,直到flag为0时,将这个切片存入另一个[][]byte切片中
- 再删除最外层的括号
- 遍历这个切片[][]byte, 将其中每一个[]byte切片进行[:],然后拼接成一个整体
[参考代码]
func removeOuterParentheses(S string) string {
flag := 0
tempByteS := make([]int32, 0)
primitiveS := make([][]int32, 0)
for _, v := range S {
tempByteS = append(tempByteS, v)
if string(v) == "(" {
flag++
} else {
flag--
}
if flag == 0 {
fmt.Println(string(tempByteS))
primitiveS = append(primitiveS, tempByteS)
tempByteS = make([]int32, 0)
}
}
resultS := make([]int32, 0)
for _, v := range primitiveS {
fmt.Println("before split: ",string(v))
lens := len(v) - 1
fmt.Println("split: ",string(v[1:lens]))
resultS = append(resultS, v[1:lens]...)
}
Review
深入研究golang的类型系统:https://medium.com/@ankur_anand/a-closer-look-at-go-golang-type-system-3058a51d1615
主要讲的是go语言的类型系统,讲的很透彻,列举了go类型使用时需要注意的一些问题,觉得很好,就把他翻译了一遍:
译文链接:https://www.jianshu.com/p/ce307b8e9772
Tips
由于最近和同时代码冲突的次数比较多,导致分支有很多合并记录,仔细研究了一下解决方式。原来在git中 有一个 git rebase命令。仔细一番以后最后写了两篇小文章,下面是文章链接:
git rebase的一点理解:https://www.jianshu.com/p/39c45f990c99
Git rebase使用:https://www.jianshu.com/p/f7ed3dd0d2d8
Share
Go语言实战笔记(二十七)| Go unsafe Pointer:https://www.flysnow.org/2017/07/06/go-in-action-unsafe-pointer.html
go语言unsafe Pointer的简单介绍与使用:
- 为了安全考虑,Go语言不允许两个指针类型进行转换
- 如果需要强制转换,需要使用unsafe包的
Pointer
-
unsafe.Pointer
是一种特殊意义的指针,它可以包含任意地址 -
unsafe.Pointer
使用的4个规则:- 任意类型的指针都可以转换成
unsafe.Pointer
-
unsafe.Pointer
也可以转换成任意类型的指针 -
uintptr
可以转换为unsafe.Pointer
-
unsafe.Pointer
也可以转换为uintptr
- 任意类型的指针都可以转换成
-
uintptr
可以进行偏移量计算,可以通过uintptr
来计算内存偏移 -
unsafe
用于编译器,在编译时go语言已经将这些运算处理好 -
unsafe
不安全,尽量少使用
本周阅读
周:1,2,3,4,5,6
缓冲信道和工作池(Buffered Channels and Worker Pools):https://studygolang.com/articles/12512
深入理解 fmt 包:https://studygolang.com/articles/17400
Go语言高阶:调度器系列(1)起源:https://mp.weixin.qq.com/s/p7sqYBUZngMfU3xXf9TNWA
一个 Git 分支协作模式的进化故事:https://mp.weixin.qq.com/s/7A5bIMCDUk8VvFcXi8l49w
深入理解go类型系统:https://medium.com/@ankur_anand/a-closer-look-at-go-golang-type-system-3058a51d1615
Go语言实战笔记(二十七)| Go unsafe Pointer:https://www.flysnow.org/2017/07/06/go-in-action-unsafe-pointer.html
有疑问加站长微信联系(非本文作者)