思路點撥:
這道題的關鍵之處在於對第三個條件的解讀
條件三:如果 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...