PAT乙級 1040 有幾個PAT

2021-10-09 23:03:42 字數 888 閱讀 8631

題目:1040 有幾個pat

原先思路自己也知道肯定會超時,還是寫了,畢竟時間複雜度o(n3),比較直觀找到每個pa,檢視後續有多少個t,求和。

正確思路:看了下大佬的思路,是看每個a前的p和後的t的積,豁然開朗,修改了自己的**。全部通過。

#include

using

namespace std;

intmain()

,t[100000]=

;int no[2]

=;//記錄p、t數量

for(

int i=

0;ilength()

;i++)if

(s[i]

=='t'

)++no[1]

;}int sum =0;

for(

int i=

0;ilength()

;i++)}

cout << sum << endl;

return0;

}

#include

using

namespace std;

intmain()

,a[100000]=

,t[100000]=

;int no[3]

=;//記錄pat各自的數量

for(

int i=

0;ilength()

;i++

)int sum =0;

for(

int i=

0;ilength()

;i++)}

}}}}

cout << sum << endl;

return0;

}

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

PAT 乙級 1040 有幾個PAT

現給定字串,問一共可以形成多少個pat?輸入只有一行,包含乙個字串,長度不超過10 5 只包含 p a t 三種字母。在一行中輸出給定字串中包含多少個pat。由於結果可能比較大,只輸出對 1000000007 取餘數的結果。2 觀察下面3段字串 pa 只能組成1個pa papa 第乙個a能組成1個p...