日常刷题,话不多说,如题所示:
说实话刚开始看到这道题还是有点懵逼的,想了许久还是没啥思路,最后参考了一下官方的解题思路,思路如下:
参考了官方这边的思路后,想法很简单:就是如果前两个已经写下的都是X的时候,下一个写入的字符串就不能选择它。
那么参考这条官方的思路,我这边写了一连串不太好看的代码,不够简洁,但是也能解决问题(后续修改把),代码如下:
import random
A=10
B=9
str_1=''
A_list=['a' for i in range(A)]
B_list=['b' for i in range(B)]
C_list=[]
count=0
while(True):
if len(A_list)>len(B_list):
if count==0:
C_list.append('a')
C_list.append('a')
A_list.remove('a')
A_list.remove('a')
count+=1
elif C_list[count-1]!='a' or C_list[count] !='a':
count+=1
C_list.append('a')
A_list.remove('a')
else:
count+=1
C_list.append('b')
B_list.remove('b')
else:
if count==0:
C_list.append('b')
C_list.append('b')
B_list.remove('b')
B_list.remove('b')
count+=1
elif C_list[count-1]!='b' or C_list[count] !='b':
count+=1
C_list.append('b')
B_list.remove('b')
else:
count+=1
C_list.append('a')
A_list.remove('a')
if len(C_list)==A+B:
break
for i in C_list:
str_1=str_1+i
print(str_1)
输出结果如下:
可以多试几个结果,比如,有兴趣的同学可以试试