> 本文参考 [嗨客网](https://haicoder.net) Golang [实战](https://haicoder.net/case/index.html)
# **Golang LeetCode练习题及答案(二)**
# **前言**
本篇文章是关于一部分 Golang LeetCode 的题目以及详细的解题思路,每道题都附有答案链接,答案解题的每个步骤到运行结果都十分详细,十分适合小白拿来练习,也十分适合准备面试的各位练手,这篇文章我会不断更新。题目都是对应 LeetCode 中练习题,答案是使用 Golang 的解题思路及方法,大家在学习了 [Golang](https://haicoder.net/golang/golang-tutorial.html) 相关教程之后,刷几道 LeetCode 相关的练习题,在学习过程中,觉得十分抽象、晦涩难懂的知识点,配合一道练习题,或许会有意想不到的效果哦!
# **正文:Golang LeetCode(二)**
### **6.Golang Z型变换**
**题目**:用 **[Golang](https://haicoder.net/golang/golang-tutorial.html)** 实现,将一个给定 **[字符串](https://haicoder.net/golang/golang-string.html)** 根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:
```go
L C I R
E T O E S I I G
E D H N
```
之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,如:“LCIRETOESIIGEDHN”。请你实现这个将字符串进行指定行数变换的 **[函数](https://haicoder.net/golang/golang-func.html)**:
```go
string convert(string s, int numRows);
```
**答案**:[https://haicoder.net/case/golang-leetcode/golang-leetcode06.html](https://haicoder.net/case/golang-leetcode/golang-leetcode06.html)
### **7.Golang整数反转**
**题目**:用 **[Golang](https://haicoder.net/golang/golang-tutorial.html)** 实现,给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
**示例一**:
```go
输入: 123
输出: 321
```
**示例二**:
```go
输入: -123
输出: -321
```
**示例三**:
```go
输入: 120
输出: 21
```
**答案**:[https://haicoder.net/case/golang-leetcode/golang-leetcode07.html](https://haicoder.net/case/golang-leetcode/golang-leetcode07.html)
### **8.Golang字符串转整型**
**题目**:用 **[Golang](https://haicoder.net/golang/golang-tutorial.html)** 实现 atoi **[函数](https://haicoder.net/golang/golang-func.html)**,使其能将 **[字符串](https://haicoder.net/golang/golang-string.html)** 转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。
当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。
该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可以被忽略,它们对于函数不应该造成影响。
注意:假如该字符串中的第一个非空格字符不是一个有效整数字符、字符串为空或字符串仅包含空白字符时,则你的函数不需要进行转换。在任何情况下,若函数不能进行有效的转换时,请返回 0。
**示例一**:
```go
输入: "42"
输出: 42
```
**示例二**:
```go
输入: " -42"
输出: -42
解释: 第一个非空白字符为 '-', 它是一个负号。我们尽可能将负号与后面所有连续出现的数字组合起来,最后得到 -42 。
```
**示例三**:
```go
输入: "4193 with words"
输出: 4193
解释: 转换截止于数字 '3' ,因为它的下一个字符不为数字。
```
**示例四**
```go
输入: "words and 987"
输出: 0
解释: 第一个非空字符是 'w', 但它不是数字或正、负号。因此无法执行有效的转换。
```
**示例五**
```go
输入: "-91283472332"
输出: -2147483648
解释: 数字 "-91283472332" 超过 32 位有符号整数范围。 因此返回 INT_MIN (−2^31) 。
```
**答案**:[https://haicoder.net/case/golang-leetcode/golang-leetcode08.html](https://haicoder.net/case/golang-leetcode/golang-leetcode08.html)
### **9.Golang回文数**
**题目**:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
**示例一**:
```go
输入: 121
输出: true
```
**示例二**:
```go
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
```
**示例三**:
```go
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
```
**答案**:[https://haicoder.net/case/golang-leetcode/golang-leetcode09.html](https://haicoder.net/case/golang-leetcode/golang-leetcode09.html)
### **10.Golang正则匹配**
**题目**:用 **[Golang](https://haicoder.net/golang/golang-tutorial.html)** 实现,给你一个 **字符串** s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。
```go
'.' 匹配任意单个字符
'*' 匹配零个或多个前面的那一个元素
```
所谓匹配,是要涵盖整个字符串 s 的,而不是部分字符串。s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 `.` 和 `*`。
**示例一**:
```go
输入:
s = "aa"
p = "a"
输出: false
解释: "a" 无法匹配 "aa" 整个字符串。
```
**示例二**:
```go
输入:
s = "aa"
p = "a*"
输出: true
解释: 因为 '*' 代表可以匹配零个或多个前面的那一个元素, 在这里前面的元素就是 'a'。因此,字符串 "aa" 可被视为 'a' 重复了一次。
```
**示例三**:
```go
输入:
s = "ab"
p = ".*"
输出: true
解释: ".*" 表示可匹配零个或多个('*')任意字符('.')。
```
**示例四**
```go
输入:
s = "aab"
p = "c*a*b"
输出: true
解释: 因为 '*' 表示零个或多个,这里 'c' 为 0 个, 'a' 被重复一次。因此可以匹配字符串 "aab"。
```
**示例五**
```go
输入:
s = "mississippi"
p = "mis*is*p*."
输出: false
```
**答案**:[https://haicoder.net/case/golang-leetcode/golang-leetcode10.html](https://haicoder.net/case/golang-leetcode/golang-leetcode10.html)
# **后续**
**上一章**:**[Golang LeetCode练习题及答案(一)](https://studygolang.com/articles/30446)**
**下一章**:**[Golang LeetCode练习题及答案(三)](https://studygolang.com/articles/30649)**
**其他章节**:**[Golang LeetCode练习题大纲](https://studygolang.com/articles/30473)**
因为文章数量过多,整理不易,所以如果更新过慢,请大家谅解,文章我会尽自己最大速度更新,大家可以先关注我,或者收藏下这篇文章,我会持续更新的,以上案例是提供给有一定 Golang 基础的同学看的,如果感觉做题有些压力,可以先在各类教程网先学习 Golang 语言,本人这里当然首推上方习题及答案来源的 **[嗨客网](https://haicoder.net/)**。
***2020.09.01更,未完待续。。。。。***
有疑问加站长微信联系(非本文作者))