转换成zigzag算法需要遍历字符串,构建n个字符串数组(slice)作为每行内容。
func Convert(s string, numrows int) string {
if numrows == 1 {
return s
}
zigzagstr := make([]string, numrows)
j := 0
up := false
for i := 0; i < len(s); i++ {
zigzagstr[j] = zigzagstr[j] + string(s[i])
if up == false {
j = j + 1
if j == numrows-1 {
up = true
}
} else {
j = j - 1
if j == 0 {
up = false
}
}
}
str := ""
for i := 0; i < numrows; i++ {
str += zigzagstr[i]
}
return str
}
在本次算法中,巩固了golang中的字符串拼接,即只用+即可。字符串中的某个字符如s[i]为byte格式,若是要与string类型相加,需要先转换成string(s[i]).