|
|
|
@ -32,6 +32,14 @@ func Encode(uid uint64) string {
|
|
|
|
|
return res
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func ReverseString(str string) string {
|
|
|
|
|
strArr := []rune(str)
|
|
|
|
|
for i := 0; i < len(strArr)/2; i++ {
|
|
|
|
|
strArr[len(strArr)-1-i], strArr[i] = strArr[i], strArr[len(strArr)-1-i]
|
|
|
|
|
}
|
|
|
|
|
return string(strArr)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func Decode(code string) uint64 {
|
|
|
|
|
res := uint64(0)
|
|
|
|
|
lenCode := len(code)
|
|
|
|
@ -41,16 +49,16 @@ func Decode(code string) uint64 {
|
|
|
|
|
baseRev[v] = k
|
|
|
|
|
}
|
|
|
|
|
// 查找补位字符的位置
|
|
|
|
|
isPad := strings.Index(code, PAD)
|
|
|
|
|
isPad := strings.Index(ReverseString(code), PAD)
|
|
|
|
|
if isPad != -1 {
|
|
|
|
|
lenCode = isPad
|
|
|
|
|
lenCode = len(code) - 1 - isPad
|
|
|
|
|
}
|
|
|
|
|
r := 0
|
|
|
|
|
for i := 0; i < lenCode; i++ {
|
|
|
|
|
// 补充字符直接跳过
|
|
|
|
|
if string(code[i]) == PAD {
|
|
|
|
|
continue
|
|
|
|
|
}
|
|
|
|
|
// if string(code[i]) == PAD {
|
|
|
|
|
// continue
|
|
|
|
|
// }
|
|
|
|
|
index, ok := baseRev[code[i]]
|
|
|
|
|
if !ok {
|
|
|
|
|
return 0
|
|
|
|
|