我在解决this问题,这个问题需要在对字符串进行操作到第6行之后计算字符串中的“a”的数量。
我想出的解决办法是:
s='abcac'
n=52
x=n//len(s)
y=n%len(s)
k=s[:y]
s=(s*x)+k
from collections import Counter
print(s.count('a'))
--非常简单明了但当n是一个大数时,它会给出错误,例如10000000000。
如何优化我的解决方案?
提前谢谢。
最佳答案
不需要构建扩展字符串首先,计算字符串中适合n
字符的完整重复次数:n//len(s)
。然后将此计数乘以字符串中的“a”数一旦你有了它,你只需要计算出需要多少字符串来覆盖剩余的n
字符:n%len(s)
,并计算出该子字符串中的“a”个数:
因此,结果将是:
n//len(s)*s.count("a") + s[:n%len(s)].count("a")