PAT乙級 1003 我要通過! 20分

2021-10-14 15:04:05 字數 2026 閱讀 5675

pat乙級 1003 我要通過! (20分) 第二版有注釋,希望我的思路可以幫助你。

總結

輸入樣例:

8pat

paat

aapataa

aapaataaaa

xpatx

ptwhatever

apaaataa

輸出樣例:

yesyes

yesyes

nono

nono

用了二維陣列儲存輸入的字串,看了其他大佬寫的找了下規律,pt******,p前為ltag,pt之間為tag,t後為rtag,rtag==ltag*tag。

tag必須為1才行,pt應該返回no。

// 1003第一遍**

#include

#include

#define maxs

100int main()

void

pass

(int n)

for(i=

0;i) ltag=

0;rtag=

0;tag=0;

//printf("%d\n",count);

for(j=

0;j)else

}//printf("%s\n",str[i]);

//printf("%d",tag);

if(tag==count)

if(str[i]

[end]

=='a')}

//printf("%d %d\n",ltag,rtag);

//printf("%d %d\n",star,end);

if(ltag==rtag&&

(star+1)

==(end-1)

&&str[i]

[star+1]

=='a'

&&str[i]

[end-1]

=='a'

)else

star++;}

if(count==tag&&tag>1)

else

}else}}

else

}}

感覺應該是if太多了,有的地方應該跳出的。

下面展示成功**

有的注釋是測試用的可以無視,方法還是比較麻煩if用的很多,先往後刷了,日後來搞簡便方法,初學c有的時候還是想的不全面,如有錯誤歡迎指正,尤其是第一版if寫的眼花了。

PAT 乙級 1003 我要通過! 20 分

include include include include include using namespace std intmain scanf d n for int i 0 i n i if flag true cntp 1 cnta 0 cntt 1 if flag true result ...

PAT乙級1003 我要通過! 20分

原本 寫的很複雜,看了柳神對這題的解答之後感覺豁然開朗,柳神真的太強了!能獲得 答案正確 的字串都有乙個規律,t 後面 a 的數量 p 前面 a 的數量 p 與 t 之間 a 的數量,運用這個規律此題便迎刃而解。另外,呼叫一下stl庫中的map函式,也能使程式簡化很多。附上map函式的介紹 incl...

PAT乙級 1003 我要通過

考察了分而治之的思想。題目的表述讓我聯想起表示式的bnf描述 乙個數是表示式 在表示式兩邊加個括號也是表示式 兩個表示式相加也是表示式 接下來你全懂了 實際上就是按照題目要求,將檢查指標細分,以求達到庖丁解牛 逐個擊破的效果。源 c include include 得到 答案正確 的條件是 字串中必...