字符串APPAPT中包含了兩個(gè)單詞“PAT”,其中第一個(gè)PAT是第2位(P),第4位(A),第6位(T);第二個(gè)PAT是第3位(P),第4位(A),第6位(T)。 現(xiàn)給定字符串,問一共可以形成多少個(gè)PAT?
輸入格式:
輸入只有一行,包含一個(gè)字符串,長(zhǎng)度不超過105,只包含P、A、T三種字母。
輸出格式: 在一行中輸出給定字符串中包含多少個(gè)PAT。由于結(jié)果可能比較大,只輸出對(duì)1000000007取余數(shù)的結(jié)果。
輸入樣例: APPAPT
輸出樣例: 2
Answer:
#include<iostream>#include<vector>using namespace std;int main() { long long count = 0; char input[100001]; cin >> input; int i = 0; long long p = 0, a = 0; while(input[i]) { while(input[i]=='P') { p++; i++; } while(input[i]=='A') { a+=p; i++; } while(input[i]=='T') { count += a; i++; } } cout << count%1000000007;}PS. 本來想要是能一下五個(gè)問題都一次通過就好了。 然而運(yùn)行超時(shí)了。雖然運(yùn)行超時(shí)也在意料之中吧。 所以改了算法。 好像又學(xué)到了什么。 笑。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注