using System;
using System.Linq;
using System.Text;
class Program
{
private static void Main()
{
var replaceCodes = new[] { "brown" ,"j" };
var sb = new StringBuilder().Append("The quick bbrownbrownrown fox jumps over the lazy dog");
var outStr = replaceCodes.Aggregate(sb, StringBilderCleaner).ToString();
Console.WriteLine(outStr);
}
static StringBuilder StringBilderCleaner(StringBuilder sbStr, string rmStr)
{
var startIndex = 0;
for (var i=0; i < sbStr.Length; i++)
{
var l = i - startIndex;
if (l == rmStr.Length)
{
sbStr.Remove(startIndex, l);
i-=l+1;
startIndex = i+1;
}else
if (rmStr[l] != sbStr[i])
{
if (l > 0) i--;
startIndex = i + 1;
}
}
return sbStr;
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLlRleHQ7CgpjbGFzcyBQcm9ncmFtCnsKICAgIHByaXZhdGUgc3RhdGljIHZvaWQgTWFpbigpCiAgICB7CiAgICAgICAgdmFyIHJlcGxhY2VDb2RlcyA9IG5ld1tdIHsgImJyb3duIiAsImoiIH07CiAgICAgICAgdmFyIHNiID0gbmV3IFN0cmluZ0J1aWxkZXIoKS5BcHBlbmQoIlRoZSBxdWljayBiYnJvd25icm93bnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nIik7CiAgICAgICAgdmFyIG91dFN0ciA9IHJlcGxhY2VDb2Rlcy5BZ2dyZWdhdGUoc2IsIFN0cmluZ0JpbGRlckNsZWFuZXIpLlRvU3RyaW5nKCk7CiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUob3V0U3RyKTsKICAgIH0KCiAgICBzdGF0aWMgU3RyaW5nQnVpbGRlciBTdHJpbmdCaWxkZXJDbGVhbmVyKFN0cmluZ0J1aWxkZXIgc2JTdHIsIHN0cmluZyBybVN0cikKICAgIHsKICAgICAgICB2YXIgc3RhcnRJbmRleCA9IDA7CiAgICAgICAgZm9yICh2YXIgaT0wOyBpIDwgc2JTdHIuTGVuZ3RoOyBpKyspCiAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIGwgPSBpIC0gc3RhcnRJbmRleDsKICAgICAgICAgICAgICAgIGlmIChsID09IHJtU3RyLkxlbmd0aCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBzYlN0ci5SZW1vdmUoc3RhcnRJbmRleCwgbCk7CiAgICAgICAgICAgICAgICAgICAgaS09bCsxOyAKICAgICAgICAgICAgICAgICAgICBzdGFydEluZGV4ID0gaSsxOwogICAgICAgICAgICAgICAgfWVsc2UKICAgICAgICAgICAgICAgIGlmIChybVN0cltsXSAhPSBzYlN0cltpXSkKICAgICAgICAJICAgIHsKICAgICAgICAgICAgICAgIGlmIChsID4gMCkgaS0tOwogICAgICAgICAgICAgICAgc3RhcnRJbmRleCA9IGkgKyAxOwogICAgICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gc2JTdHI7CiAgICB9Cn0=