変な問題

問題

http://nyc2015.contest.atcoder.jp/tasks/nyc2015_3

方針

先頭から続く文字だけは挿入できない.

snuke -> snnnnnuke は作れるけど, snuke -> sssnuke は作れない.

よって先頭だけ分けて考える.

解答

int solve(string s, string t)
{
    int i = 0;
    for (; i < t.length() && t[i] == t[0]; i++) {
        if (i >= s.length() || s[i] != t[i]) return 0;
    }
    int j = i;
    for (; i < s.length(); i++, j++) {
        while (j < t.length() && s[i] != t[j]) j++;
        if (j >= t.length()) return 0;
    }
    return 1;
}
 
int main()
{
    string s, t; cin >> s >> t;
    cout << (solve(s, t) ? "Yes" : "No") << endl;
    return 0;
}