我正在尝试提高个人技能以解决黑客等级挑战:
有一串小写英文字母 s 被无限次重复。给定一个整数 n,找出并打印无限字符串的前 n 个字母中字母 a 的个数。
1<=s<=100 && 1<=n<=10^12
非常天真,我虽然这段代码会很好:
fs := strings.Repeat(s, int(n)) // full string
ss := fs[:n] // sub string
fmt.Println(strings.Count(ss, "a"))
显然我爆炸了内存并得到了一个:“内存不足”。
我从来没有遇到过这种问题,而且我对如何处理它一无所知。如何操作很长的字符串以避免内存不足?
慕后森
有只小跳蛙
相关分类