美文网首页
ARTS 第4周

ARTS 第4周

作者: 陈卧虫 | 来源:发表于2019-04-27 22:01 被阅读0次

ARTS 第4周分享

[TOC]

Algorithm

1021. Remove Outermost Parentheses

难度:[easy]

[思路]

  1. 先解析成最原始的括号
    • 遍历这个字符串, 用一个int变量flag标记是否匹配成一个原始括号:如果为左括号,flag加1;如果为右括号,flag减1;如果flag为零,则匹配成一个原始括号
    • 用一个切片[]byte存储遍历的每一个字符,直到flag为0时,将这个切片存入另一个[][]byte切片中
  2. 再删除最外层的括号
    • 遍历这个切片[][]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

相关文章

  • 爱画画的你不可错过的九位神级水彩画家

    text/Oh Arts photo/网络 editor/包子 小岛今天入驻了新写手“Oh Arts”,今天她的第...

  • ARTS 第18周

    ARTS 第18周分享 [TOC] Algorithm 56. Merge Intervals [medium] ...

  • ARTS 第10周

    ARTS 第10周分享 [TOC] Algorithm 933. Number of Recent Calls [...

  • ARTS 第1周

    ARTS 第1周分享 Algorithm LeetCode 237 Delete Node in a Linked...

  • ARTS 第21周

    ARTS 第21周分享 [TOC] Algorithm 242. Valid Anagram [easy] [题目...

  • ARTS 第23周

    ARTS 第23周分享 [TOC] Algorithm 349. Intersection of Two Arra...

  • ARTS 第4周

    ARTS 第4周分享 [TOC] Algorithm 1021. Remove Outermost Parenth...

  • ARTS 第19周

    ARTS 第19周分享 [TOC] Algorithm 75. Sort Colors [medium] [题目描...

  • ARTS 第20周

    ARTS 第20周分享 [TOC] Algorithm 164. Maximum Gap [hard] [题目描述...

  • ARTS 第7周

    ARTS 第7周分享 [TOC] Algorithm 922. Sort Array By Parity II 难...

网友评论

      本文标题:ARTS 第4周

      本文链接:https://www.haomeiwen.com/subject/ivmlnqtx.html