1309. 解码字母到整数映射

image.png

倒着查找 ,时间复杂度为n
1遇到# 偏移3个位置
2 其他情况偏移1个位置

  1. package main
  2. import (
  3. "fmt"
  4. "strconv"
  5. )
  6. func freqAlphabets(s string) string {
  7. i:=len(s)-1
  8. var res =""
  9. for i>=0{
  10. if s[i]=='#'{
  11. b:=s[i-2:i]
  12. v,_:= strconv.Atoi(b)
  13. res= fmt.Sprintf("%s%s",string('a'+v-1),res)
  14. i=i-3
  15. }else {
  16. v,_:= strconv.Atoi(string(s[i]))
  17. res= fmt.Sprintf("%s%s",string('a'+v-1),res)
  18. i--
  19. }
  20. }
  21. return res
  22. }
  23. func main() {
  24. fmt.Println(freqAlphabets("10#11#12"))
  25. fmt.Println(freqAlphabets("1326#"))
  26. fmt.Println(freqAlphabets("25#"))
  27. }

image.png