Topcoder---python记录001

第一次在topcoder上做题,分享一个小视频:

AB

image.png
image.png

不知道topcoder有没有题解,反正我是没有找到题解,太菜了,写的代码也很烂。还是抽时间多练习吧。python类也没看过,一直报错,调试对了代码又变得冗长。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class AB(object):
def createString(self, N, K):
s = "A" * N # 初始化字符串为全A
if N <= 0:
return ""
if N == 1 and K == 1:
return ""
if N == 2 and K == 2:
return ""
if K < N: # 分类:可以直接插入B的情况
st = s[0:K] + "B" + s[K + 1 : N]
return st
else:
ans = self.createString(N - 1, K - N + 2) + "B" # 把情况简化(子问题),字符串尾部最后的字幕换成B,然后前面的字符串判断是否可以插入B
if len(ans) != N: # 判断一下,看是不是没有答案的情况,如果没有判断,这里第一个例子会输出BBB。
return ""
else:
return ans

以下代码可以判断输出是否正确。

1
2
3
4
5
6
if __name__ == "__main__":
a = AB()
print(a.createString(5, 8))
print(a.createString(3, 2))
print(a.createString(2, 0))
print(a.createString(10, 12))

结果:
image.png

这道题我提交了两次,第一次89,第二次75(10%的惩罚),挺低的,估计还是有例子没有想到。


----本文结束啦感谢您阅读----

欢迎关注我的其它发布渠道