同題:UVa 10340 – All in All
你設計了一種新的加密技術,該技術通過在訊息字串之間插入隨機生成的字串來對消息進行編碼。
由於未解決專利問題,我們將不詳細討論如何生成字串。但是,要驗證您的方法,有必要寫一個程式來檢查訊息是否真正編碼在最終字串中。
給定兩個字串 S 和 T,您必須確定 S 是否為 T 的原始訊息字串,即是否可以從t中刪除字元以使其剩餘字元串聯爲 S。
範例測資
範例輸入 | 範例輸出 |
---|---|
EOF 輸入,每行兩個字串 S 和 T,S 和 T 只會有英文字母。 | 對於每行輸入 如果 S 是 T 的原始訊息字串 輸出「Yes」 否則 輸出「No」 |
sequence subsequence person compression VERDI vivaVittorioEmanueleReDiItalia caseDoesMatter CaseDoesMatter | Yes No Yes No |
解題思路
跑第二個字串的 For迴圈 然後設定一個 Count 的變數 (預設為 0),當第二個字串的第 i 個字元等於第一個字串的第Count個字元時,Count++。最後判斷Count是否等於第一個字串的長度即可。
範例程式碼-ZeroJudge E624: All in All
#include <iostream>
using namespace std;
int main() {
string a, b;
while (cin >> a >> b)
{
int count = 0;
for (int i = 0; i<b.length(); i++)
{
if (b[i] == a[count]) count++;
if (count == a.length()) break;
}
if (count == a.length()) cout << "Yes\n";
else cout << "No\n";
}
}
//ZeroJudge E624
//Dr. SeanXD