1
0

1415.go 688 B

123456789101112131415161718192021222324252627282930313233343536
  1. package main
  2. import "math"
  3. func getHappyString(n int, k int) string {
  4. bt := int(math.Pow(2.0, float64(n-1)))
  5. maxK := 3 * bt
  6. if k > maxK {
  7. return ""
  8. }
  9. slice := []byte{'a', 'b', 'c'}
  10. sl := [][]byte{{'b', 'c'}, {'a', 'c'}, {'a', 'b'}}
  11. res := make([]byte, 0, n)
  12. if k <= bt {
  13. res = append(res, slice[0])
  14. bt = 0
  15. } else if k > bt && k <= 2*bt {
  16. res = append(res, slice[1])
  17. } else {
  18. res = append(res, slice[2])
  19. bt *= 2
  20. }
  21. for i := 1; i < n; i++ {
  22. temp := res[i-1]
  23. i1 := int(temp - 'a')
  24. bti := int(math.Pow(2.0, float64(n-i-1)))
  25. if k <= bt+bti {
  26. res = append(res, sl[i1][0])
  27. } else {
  28. res = append(res, sl[i1][1])
  29. bt += bti
  30. }
  31. }
  32. return string(res)
  33. }
备用站点 当前处于降级运行的备用站点,仅供应急访问,数据和功能可能不是最新。