以stdio为头文件时,在main函数外声明数组时,数组长度用数字而不要用变量。
#include<stdio.h>
#include<string.h>
const int max_n = 100100;
const int MOD = 1000000007;
char str[max_n]; //这里极易编译出错,因为这里应该用数字而不是变量。
int num[max_n] = { 0 }; //这里极易编译出错,因为这里应该用数字而不是变量。
int main() {
int len = 0, right_num = 0, ans = 0;
gets(str);
len = strlen(str);
for (int i = 0; i < len; i++) {
if (i > 0) {
num[i] = num[i - 1];
}
if (str[i] == 'P') {
num[i]++;
}
}
for (int i = len - 1; i >= 0; i--) {
if (str[i] == 'T') {
right_num++;
}
if (str[i] == 'A') {
ans = (ans + num[i] * right_num) % MOD;
}
}
printf("%d", ans);
return 0;
}