- ZigZag Conversion
首先得知道题是啥意思 就是按照 “z”形状排列
比如 “012345678910” row = 3 时 “z”形就是
解题思路
首先用row个数组存每一个字符。那么关键就是算出每一个字母应该在第几个数组中。仔细观察是一个循环的规律。循环长度为 row + row -2
代码
func convert(str string, row int) string {
if row == 1 {
return str
}
item_len := 2 * row - 2 //循环的长度
res := make([][]string,row,row)
for index,v := range str{
mod := index % item_len
if(mod < row){
res[mod] = append(res[mod],string(v))
}else{
i := row - (mod - row) - 2
res[i] = append(res[i],string(v))
}
}
var s string
for _,arr := range res{
for _ ,v:= range arr{
s += v
}
}
return s
}