C++ Largest String
#include <string>

std::string largestString(std::string s)
{
    int len = static_cast<int>(s.size());
    std::string cur;

    for (int i = len - 1; i >= 0; --i) {
        cur = s[i] + cur;

        if (cur.size() == 3) {
            if (cur == "abb") {
                s[i] = 'b';
                s[i + 1] = 'a';
                s[i + 2] = 'a';
                if (i + 4 < len && s[i + 4] == 'b') {
                    i += 4 + 1;
                } else if (i + 3 < len && s[i + 3] == 'b') {
                    i += 3 + 1;
                } else if (s[i + 2] == 'b') {
                    i += 2 + 1;
                }
            }
            if (i + 1 < len && s[i + 1] == 'b') {
                i += 1 + 1;
            } else {
                ++i;
            }
            cur.clear();
        }
    }

    return s;
}

This builds the biggest valid string it can under the challenge rules by always choosing the best next character it is allowed to use.