| 1234567891011121314151617181920212223242526272829 | 
							- package main
 
- func convert(s string, numRows int) string {
 
- 	n := len(s)
 
- 	if n < 3 || numRows == 1 {
 
- 		return s
 
- 	}
 
- 	cycle := numRows*2 - 2
 
- 	arr := make([][]rune, numRows)
 
- 	for i, v := range s {
 
- 		idx := i % cycle
 
- 		if idx < numRows {
 
- 			arr[idx] = append(arr[idx], v)
 
- 		} else {
 
- 			arr[(numRows-1)*2-idx] = append(arr[(numRows-1)*2-idx], v)
 
- 		}
 
- 	}
 
- 	res := make([]rune, 0)
 
- 	for _, v := range arr {
 
- 		res = append(res, v...)
 
- 	}
 
- 	return string(res)
 
- }
 
- /* func main() {
 
- 	fmt.Println(convert("PAYPALISHIRING", 3))
 
- 	fmt.Println(convert("ABCDE", 4))
 
- 	fmt.Println("PAHNAPLSIIGYIR")
 
- } */
 
 
  |