1040 有幾個PAT 25 分

2021-10-20 18:30:30 字數 798 閱讀 8839

輸入格式:

輸入只有一行,包含乙個字串,長度不超過10​5​​ ,只包含 p、a、t 三種字母。

輸出格式:

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

輸入樣例:

輸出樣例:

2
具體思路是這樣的,先遍歷s,統計t出現的次數,然後從前遍歷陣列,當遇到p的時候,countp加加,當遇到t的時候,要刪去乙個t,因為此時還沒有出現a,當出現a後,pat的數量是a前面的p數量*a後面的t數量,所以刪去當前a前面的t的數量

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace std;

intmain()

}for

(int i=

0;isize()

;i++)if

(s[i]

=='t')if

(s[i]

=='a')}

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...