题目
思路:
我的思路有超时
找到字符串中A的位置,统计A之前的P的个数,以及A之后的T的个数,将其相乘求和即可
超时代码:
def count_str(list_,str_):
count_=0
for i in list_:
if i==str_:
count_=count_+1
return count_
import sys
input=sys.stdin.readline()
num_pat=0
for i in range(len(input)):
if input[i]=='A':
P_num=count_str(input[0:i],'P')
T_num = count_str(input[i+1 :], 'T')
num_pat=num_pat+P_num*T_num
print(num_pat%1000000007)
博主的代码无超时,他好聪明,为啥我想不到
博主链接:无超时代码链接
无超时代码:
n = input()
count_P = count_PA = count_PAT = 0
for i in n:
if 'P' == i:
count_P += 1
elif 'A' == i:
count_PA += count_P
else:
count_PAT += count_PA
print(count_PAT % 1000000007)
此代码来自上述博主