TopCoder SRM 663 Div2 Problem 500 - ABBA (思維)

題意

給一個初始串和目標串,兩種操作,問能不能變過去。

思路

我們不能從初始串考慮如何變過去,這樣情況太多。

考慮從目標串能不能變成初始串。

由題意,我們知道不管加的是A還是B,最後都在字符串的最後一位。也就是說target的最後一位一定是剛纔新加的。並且去掉之後只有唯一的字符串對應。

所以我們就一直去掉target的最後一位,直到長度和initial相等,比較一下即可。

代碼

class ABBA {
public:
    string canObtain(string initial, string target) {
        while (SZ(target) != SZ(initial))
        {
            if (target.back() == 'A') target.pop_back();
            else
            {
                target.pop_back();
                reverse(target.begin(), target.end());
            }
        }
        return target == initial ? "Possible" : "Impossible";
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章