1003 我要通過!

2021-09-25 00:00:26 字數 1122 閱讀 8649

有個坑點是第三條件是個遞迴式,比如說apata(假設我們叫這個字串為a)是正確的,那麼apaataa(b)也是正確的。既然b是正確的,那麼由b得:apaaataaa(c)也是正確的,以此類推。現在我們要做的就是把c逐步還原到a,判定a是否滿足第二條件。

還有第一,二條件裡其實隱含了p,t只能出現一次,而且必然要出現,而a可以出現好多次。其他應該沒什麼要注意的。

附上本人優雅的**~

#include #include using namespace std;

bool sec_con(string str)

return true;

}bool trd_con(string str)

if (it - ip == 1) return false;

if (it - ip == 2 && sec_con(str))

return true;

string a;

for (int i = 0; i < ip; i++)

a += str[i];

string c;

for (int i = it + 1; i < length - a.length(); i++)

c += str[i];

string b;

for (int i = ip + 1; i < it - 1; i++)

b += str[i];

string sum = a + 'p' + b + 't' + c;

return trd_con(sum);

}int main()

if (str[i] == 't')

} if (indexoft - indexofp < 0 || p >1 || indexofp ==-1 || t > 1 || indexoft == -1 || a == false)

if (sec_con(str))

cout << "yes" << endl;

else if (trd_con(str))

cout << "yes" << endl;

else cout << "no" << endl;

} return 0;

}

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 我要通過!

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