WARush

SRMの結果とか、解けた問題のコードを書いていきます

SRM613 Div2 Easy "TaroString"

問題

TopCoder Statistics - Problem Statement

猫のタロウは文字列 S を持っていた。彼はSから"CAT"という文字列を手に入れたかった。1回の操作で好きな文字を選び、それをSから消すことができる(選んだ文字がSに複数個あれば、それら全てを消す)。操作は好きなだけ行うことができる。

あなたはString Sが与えられる。文字列"CAT"が得ることができるかどうかを返せ。

制約

1 <= Sの長さ <= 50


考えたこと

SにC, A, Tどれもちょうど1つある。SにC, A, Tの順番である。この2つを満たせばよい

ソースコード

class TaroString {
public:

    string getAnswer(string S) {
        int n = S.size();

        int c = 0;
        int a = 0;
        int t = 0;
        for (int i = 0; i < n; i++) {
            if (S[i] == 'C') c++;
            if (S[i] == 'A') a++;
            if (S[i] == 'T') t++;
        }

        if (!(c == 1 && a == 1 && t == 1)) return "Impossible";

        for (int i = 0; i < n; i++) {
            if (S[i] == 'C') c = i;
            if (S[i] == 'A') a = i;
            if (S[i] == 'T') t = i;
        }

        return c < a && c < t && a < t ? "Possible" : "Impossible";
    }
}