翻轉含有 中文、數字、英文字母
等任意字符串git
輸入:"he師l發lo,世。+-*界,6" 輸出:"6,界*-+。世,ol發l師eh"
package main import "fmt" func reverseString(s string) string { // 將字符串轉換爲 rune 類型的切片,並對該切片翻轉 res := reverse([]int32(s)) // 再把 rune 類型的切片轉爲 string return string(res) } func reverse(s []int32) []rune { // 左右指針,對切片依次翻轉 for i, j := 0, len(s)-1; i < j; i, j = i+1, j-1 { s[i], s[j] = s[j], s[i] } return s } func main() { s := "he師l發lo,世。+-*界,6" res := reverseString(s) fmt.Println(res) }
rune
關鍵字是 int32
的別名,比 byte
能夠表示更多的字符,能夠處理一切字符。golang
所以,將字符串轉爲 rune
的切片,再進行翻轉,便可解決。網站
固然,你也能夠寫 []int32
。ui
在 go 的源碼中:指針
type byte = uint8 type rune = int32
歡迎訪問個人我的網站:code
李培冠博客:lpgit.com字符串