1003 我要通過!

2021-09-10 13:20:58 字數 1540 閱讀 5649

只看**直接拖到最下面

其實剛一看這個題沒看懂,很輕易就能得出的結論是:

必須要有pat三個字元,p,t有且只有乙個,p在t前面。

第2,3點就不知道具體想表達啥了,反正我是沒看出來。看了一下網上的部落格,大家普遍認同的一種結論是:

以p和t為邊界可以分為三部分: ********** p***********t *********,也就是畫星號的三部分。我們先不管空字串的情況,如果星號都是由字母a組成,以上歸納出來的規律是這樣的,如果p之前的a的個數為n1,p到t之間的a個數為n2,t之後的a的個數為n3,那麼有n3=n2n1.具體怎麼得出來的我也不知道,用這個式子去驗證那幾種樣例是明顯符合的。

上**:

這**看了這個博主的思路,寫出來基本一樣了…

**中檢驗的幾點是:

1.包含每個字元必須是pat中的乙個

2.p在t前面

3.p和t個數為1,a至少1個

4.n3=n1*n2

解釋一下為什麼大家都沒有去關注那個空字串,我開始覺得每個字元必須是pat,那空格呢,在我的想象中,之前學字串列印乙個hello world 中間的空格也算是乙個字元啊。但是在計算長度的時候去寫個**發現,如果兩個單詞中間有乙個空格他的字串就在空格處直接結束了。如果前後有空格,空格沒有算長度的。那這道題我們的空字元可以不管他了。只計算a就行了。

//找到這三個字元的位置

position_a = s.

find

('a');

position_t = s.

find

('t');

if(position_p >= position_t)

return false;

for(i =

0; i < s.

length()

; i++)if

(num3 == num1 * num2)

//是否滿足那個條件

return true;

else

return false;

}int

main()

return0;

}

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...

1003 我要通過!

有個坑點是第三條件是個遞迴式,比如說apata 假設我們叫這個字串為a 是正確的,那麼apaataa b 也是正確的。既然b是正確的,那麼由b得 apaaataaa c 也是正確的,以此類推。現在我們要做的就是把c逐步還原到a,判定a是否滿足第二條件。還有第一,二條件裡其實隱含了p,t只能出現一次,...