PAT B1003 我要通過!(滿分20)

2021-10-05 16:59:00 字數 931 閱讀 3651

思路點撥:

這道題的關鍵之處在於對第三個條件的解讀

條件三:如果 apbtc 是正確的,那麼 apbatca 也是正確的,其中 a、 b、 c 均或者是空字串,或者是僅由字母 a 組成的字串。

解讀:a,b,c分別為a的個數。只要滿足規律:ab=c,則條件三就成立。

會發現第二個條件是第三個條件的特殊情況。

所以,需要滿足的三個條件簡言之:

字串正確,則必須含有三個字元p、a、t;

滿足ab=c。

轉換問題為:分別求輸入的字串中的p、a、t三個字元之間a的個數,對個數進行判斷。

**如下:

#include

#include

using

namespace std;

intmain()

int a[10]

, b[10]

, c[10]

;int d, e;

for(

int i =

0; i < n; i++

)else}if

(str[i]

!="no")}

for(

int i =

0; ifor(

int i =

0; i) cout << str[i]

<< endl;

system

("pause");

return0;

}

反思總結:

這道題,考察的知識十分基礎,而且不涉及任何演算法,主要是考察字串的基本用法。這道題的巧妙之處在於,如何能把題目進行轉化。同時,如何能夠巧妙地統計a,b,c分別代表的a的個數。

這道題**實現完全是自己的想法,希望有所幫助。

PAT B1003 我要通過!

我覺得這是pat中最坑的一道題,表述令人很不適應 分析過程 條件1.只有p,a,t三種字元 條件2.xpatx正確,x可以是空串,或者由a組成的字串 條件3.如果apbtc是正確的,apbatca也是正確的,a,b,c與上一條件x相同 1,2為基本條件,根據1,2推3 根據條件1,2 xpatx正確...

1003 我要通過

一直都搞錯了題目的意思,後來看了網上的解析,才知道原來題目是要apbtc滿足len a len b len c int main size t t s.find first not of a p 1 if t string npos t p 1 s t t 找出p後下乙個不是a的位置,如果不是t或者...

1003 我要通過

解題思路 剛開始讀題的時候有幾個地方沒有注意,首先xpatx其中pat兩側的應該是一樣的串,其次如果apatc正確,那麼apaatca也是正確的,以此類推apaaatcaa,apaaaatcaaa 都是正確的 include include include using namespace std i...