ZeroJudge E624: All in All

同題: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

發佈留言