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 得到 答案正確 的條件是 字串中必...