PAT乙級1040 有幾個PAT(C語言)

2021-10-20 07:00:59 字數 728 閱讀 7025

單獨用一次迴圈,統計t的個數,在用迴圈查詢a,同時記錄a之前p的個數,減去a之前出現的t,pat個的個數即為兩數乘積

#include

intmain()

;//陣列b記錄查詢的a之前出現的p和t

long

long sum1=

0,sum2=

0,t;

//sum1記錄t的總個數,sum2記錄pat的個數

for(i=

0;a[i]

!='\0'

;i++

)for

(i=0

;a[i]

!='\0'

;i++)}

}printf

("%d\n"

,sum2%

1000000007);

}

沒記錄總t的個數,然後減去a之前t的個數,用了二重迴圈

從末尾記錄t的個數,然後記錄at的個數,最後記錄pat的個數

#include

#include

intmain()

else

if(a[i]

=='a'

)else

if(a[i]

=='p')}

printf

("%lld\n"

,spat%

1000000007);

}

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

題目 1040 有幾個pat 原先思路自己也知道肯定會超時,還是寫了,畢竟時間複雜度o n3 比較直觀找到每個pa,檢視後續有多少個t,求和。正確思路 看了下大佬的思路,是看每個a前的p和後的t的積,豁然開朗,修改了自己的 全部通過。include using namespace std intma...