よじろめ覚書

私の理解度重視のソースコードです。

ABC019B - 高橋くんと文字列圧縮

問題:B - 高橋くんと文字列圧縮

#include <iostream>
#include <string>
#include <sstream>
using namespace std;

#define FOR(i, a, b) for (int i = (a); i < (b); ++i)

int main(void) {
    string s, ans;
    int cnt = 1;
    stringstream ss;

    cin >> s;
    FOR(i, 1, s.length()) {
        if (s[i - 1] == s[i]) {
            cnt++;
        } else {
            ss << s[i - 1] << cnt;
            cnt = 1;
        }
    }

    if (s[s.length() - 2] != s[s.length() - 1]) {
        cnt = 1;
    }
    ss << s[s.length() - 1] << cnt;

    ss >> ans;
    cout << ans << "\n";
    return 0;
}