C# Largest String
static string LargestString(string s)
{
var chars = s.ToCharArray();
var len = chars.Length;
var cur = "";
for (int i = len - 1; i >= 0; i--)
{
cur = chars[i] + cur;
if (cur.Length == 3)
{
if (cur == "abb")
{
chars[i] = 'b';
chars[i + 1] = 'a';
chars[i + 2] = 'a';
if (i + 4 < len && chars[i + 4] == 'b')
{
i += 4 + 1;
}
else if (i + 3 < len && chars[i + 3] == 'b')
{
i += 3 + 1;
}
else if (chars[i + 2] == 'b')
{
i += 2 + 1;
}
}
if (chars[i + 1] == 'b')
{
i += 1 + 1;
}
else
{
i++;
}
cur = "";
}
}
return new string(chars);
}
This builds the biggest valid string it can under the challenge rules by always choosing the best next character it is allowed to use.