go - 如何创建一个重复的字母字符串?

标签 go

我如何创建一堆字母字符串,以便第一个是“a”,第 26 个是“z”,第 27 个是“aa”......例如:

a
b
c
d
...
...
...
x
y
z
aa
ab
ac
ad
...
...
...
ax
ay
az
aaa
aab
aac
...
...
...
aax
aay    
aaz
aaaa
aaab
...
...

I have the following playground code , 但数字 27 是 "za"(s/b "aa")。我希望最终能够使用该模式创建无限长度的字符串。

最佳答案

下面是对您的函数的重写,应该可以解决问题。您会注意到它使用了这样一个事实,即字母 A-Z 具有连续的 unicode 编号,这意味着不必存储字母表。

func NextAlias(last string) string {
    if last == "" {
        return "a"
    } else if last[len(last)-1] == 'z' {
        return last[:len(last)-1] + "aa"
    } else {
        return last[:len(last)-1] + string(last[len(last)-1] + 1)
    }
}

https://play.golang.org/p/Y2ViJKs_T4

关于go - 如何创建一个重复的字母字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32259624/

相关文章:

git - 当 $PATH 中有多个 git 可用时, 'go get' 使用哪个 git 版本?

go - 如何保留子元素的外部 XML?

go - 如何读取来自 NewSingleHostReverseProxy 的响应

JSON 响应 : return nested JSON

go - 内部ReadFrom中的Golang io.Copy block

go - 如何动态增加服务器超时

arrays - 在golang中转储接口(interface)数组

go - 通过 websocket 使用 channel

docker - 在 Golang 中使用 docker 将敏感数据作为参数传递

go - 如何创建 golang 网络套接字聊天?