as title
這是之前去面試的考題
想了很久,不過感覺不是最佳解
做個紀錄
期待有大神看到可以提供更好的解法XD
func main() {
	s := "ABCDEFG"
	t := len(s) - 1
	tar1 := stringReverseRecursion1(s, t)
	log.Println(tar1)
}
func stringReverseRecursion1(temp string, times int) string {
	if times < 0 {
		return temp[len(temp)/2:]
	}
	temp += string(temp[times])
	times--
	return stringReverseRecursion1(temp, times)
}
package main
import (
  "fmt"
)
func reverseStrRecursion(input string) string {
  runes := []rune(input)
  if len(runes) <= 1 {
    return string(runes)
  }
  return reverseStrRecursion(string(runes[1:])) + string(runes[0])
}
func main() {
  s0 := ""
  fmt.Println(reverseStrRecursion(s0))
  
  s1a := "ㄅ"
  fmt.Println(reverseStrRecursion(s1a))
  
  s1b := "b"
  fmt.Println(reverseStrRecursion(s1b))
  
  s1c := "?"
  fmt.Println(reverseStrRecursion(s1c))
  
  s2a := "Hello"
  fmt.Println(reverseStrRecursion(s2a))
    
  s2b := "?????????????"
  fmt.Println(reverseStrRecursion(s2b))
  
  s3 := "The quick brown 狐 jumped over the lazy 犬"
  fmt.Println(reverseStrRecursion(s3))
  
  s4 := "明里つむぎ 佳苗るか 岬ななみ"
  fmt.Println(reverseStrRecursion(s4))
}

貼的時候 水果都能看見....存了以後水果就變亂碼了.
最後那個return的地方真是厲害
我看了30分鐘才懂
我沒理解錯的話是return在等reverseStrRecursion處理完
然後reverseStrRecursion一直將字首拋出去連接
沒想到可以這樣用...
大神請受我一拜
其實這是標準的,遞迴的寫法. 另外注意到,我將他rune化了.
golang 的 rune , 在幾年前
https://ithelp.ithome.com.tw/articles/10161710
這篇也是我寫的.參考一下.

我也要對擺