現給定字串,問一共可以形成多少個pat?
輸入只有一行,包含乙個字串,長度不超過105,只包含p、a、t三種字母。
在一行中輸出給定字串中包含多少個pat。由於結果可能比較大,只輸出對1000000007取餘數的結果。
2
**:
#include"iostream"#include "string"
using namespace std;
int main()
}cout << numpat;
}
思路和陷阱:
三層迴圈肯定是會超時的,所以從後向前尋找t的個數,而不尋找p後面at的個數,這樣t的個數確定後,向前遇到『a』的話,at的個數就會確定下來,如此,pat就會得知,時間複雜度o(n)
PAT乙級 有幾個PAT
輸入只有一行,包含乙個字串,長度不超過105,只包含p,a,t三種字母。在一行中輸出給定字串中包含多少個pat。由於結果可能比較大,只輸出對1000000007取餘數的結果。2首先,這個題看完之後有點懵逼,然後仔細分析得出這三點 每個p對應的pat組合數量是a之前p的數量 每個a對應的pat組合數量...
PAT乙級 1040 有幾個PAT
現給定字串,問一共可以形成多少個 pat?輸入格式 本來是說從pat甲級再開始記錄做題記錄的,但是難度明顯高於我自己的想象,所以現在在乙級題中,覺得特別有價值的需要來記錄一下。自己的 如下 include define m 1000000007 include using namespace std...
PAT 乙級 1040 有幾個PAT
題目 題目鏈結 思路 這道題的思路是從網上搜的,要想知道構成多少個pat,那麼遍歷字串後對於每一a,它前面的p的個數和它後面的t的個數的乘積就是能構成的pat的個數。然後把對於每乙個a的結果相加即可。辣麼就簡單啦,只需要先遍歷字串數一數有多少個t,然後每遇到乙個t呢cntt 每遇到乙個p呢,cntp...