1003 我要通過

2021-07-08 14:56:55 字數 631 閱讀 7904

一直都搞錯了題目的意思,後來看了網上的解析,才知道原來題目是要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或者就是p下一位或者沒找到,不通過

size_t n = s.find_first_not_of("a", t + 1);

if (n != string::npos) //找出t後下乙個不是a的位置,如果沒找到,不通過

if ((s.length() - t - 1) == p * (t - p - 1)) //如果不滿足len(a)*len(b)=len(c),不通過

else

}return

0;}

1003 我要通過

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

1003 我要通過!

只看 直接拖到最下面 其實剛一看這個題沒看懂,很輕易就能得出的結論是 必須要有pat三個字元,p,t有且只有乙個,p在t前面。第2,3點就不知道具體想表達啥了,反正我是沒看出來。看了一下網上的部落格,大家普遍認同的一種結論是 以p和t為邊界可以分為三部分 p t 也就是畫星號的三部分。我們先不管空字...

1003 我要通過!

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