| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- package main
- import (
- slog "bet24.com/log"
- _ "bet24.com/servers/micros/ladderservice/proto"
- "log"
- "strconv"
- "strings"
- )
- type Test struct {
- Index int
- }
- func (t *Test) Print() {
- slog.Release("Test.Print %d", t.Index)
- }
- var chars = []string{"A", "B", "C", "D", "E", "F", "G",
- "H", "I", "J", "K", "L", "M", "N",
- "O", "P", "Q", "R", "S", "T",
- "U", "V", "W", "X", "Y", "Z"}
- func getString(s string) string {
- index, err := strconv.Atoi(s)
- if err != nil {
- return ""
- }
- if index >= len(chars) {
- return ""
- }
- return chars[index]
- }
- func decode(in string) []string {
- if len(in) == 0 {
- return []string{}
- }
- var ret []string
- // 如果第一位是0
- if strings.HasPrefix(in, "0") {
- s := chars[0]
- //ret = append(ret, chars[0])
- next := decode(in[1:])
- for _, v := range next {
- ret = append(ret, s+v)
- }
- return ret
- }
- if len(in) == 1 {
- if value, err := strconv.Atoi(in); err == nil {
- ret = append(ret, chars[value])
- }
- return ret
- }
- _, err := strconv.Atoi(in)
- if err != nil {
- return ret
- }
- s := getString(string(in[0]))
- next := decode(in[1:])
- for _, v := range next {
- ret = append(ret, s+v)
- }
- str2 := getString(in[:2])
- if str2 != "" {
- next := decode(in[2:])
- for _, v := range next {
- ret = append(ret, str2+v)
- }
- }
- return ret
- }
- func main() {
- logger, err := slog.New("debug", "debug", "log/client", log.LstdFlags)
- if err == nil {
- slog.Export(logger)
- }
- s := "1213407"
- slog.Debug("decode %v", decode(s))
- for {
- }
- }
|