1040 有幾個PAT 25分

2022-06-12 11:57:10 字數 827 閱讀 7782

1040 有幾個pat (25分)

現給定字串,問一共可以形成多少個pat

輸入只有一行,包含乙個字串,長度不超過10^5​

​,只包含pat三種字母。

在一行中輸出給定字串中包含多少個pat。由於結果可能比較大,只輸出對 1000000007 取餘數的結果。

2

時間限制: 150 ms

記憶體限制: 64 mb

**長度限制: 16 kb

對每乙個a統計左邊p的個數乘以右邊t的個數(事先用陣列儲存好每一位p的個數和t的個數會比較省時)

#include#include

using

namespace

std;

#define maxnum 1000000007

intmain()

vector

p(n,0

); vector

t(n,0

);

if(str[0]=='

p')p[0]++;

for(int i=1;i)

if(str[n-1]=='

t')t[n-1]++;

for(int i=n-2;i>=0;i--)

int res=0

;

for(int i=0;i)

}cout

}

1040 有幾個PAT 25 分

現給定字串,問一共可以形成多少個pat?輸入只有一行,包含乙個字串,長度不超過10 5 只包含p a t三種字母。在一行中輸出給定字串中包含多少個pat。由於結果可能比較大,只輸出對 1000000007 取餘數的結果。2 includeusing namespace std int countp ...

1040 有幾個PAT 25 分

現給定字串,問一共可以形成多少個pat?輸入格式 輸入只有一行,包含乙個字串,長度不超過10 5 只包含p a t三種字母。輸出格式 在一行中輸出給定字串中包含多少個pat。由於結果可能比較大,只輸出對 1000000007 取餘數的結果。輸入樣例 輸出樣例 2一開始的思路是以p為結點找每個p後面有...

1040 有幾個PAT 25分

思路分析一 此題如果直接暴力會超時,所以應該找到規律。通過觀察輸出結果其實就是對於乙個確定位置的a來說,其左邊p的個數乘以其右邊的t的個數。那麼接下來的工作就是統計確定位置a左邊的p的個數。可以設定乙個資料leftnump,記錄p的個數。如果當前位i是p,那麼leftnump i 否則,leftum...