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.