using System;
using System.Linq;
using System.Text;
class Program
{
private static void Main()
{
var replaceCodes = new[] { "brown" };
var sb = new StringBuilder().Append("The quick bbrownrown 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);
startIndex = i+1;
}else
if (rmStr[l] != sbStr[i]) startIndex = i+1;
}
return sbStr;
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLlRleHQ7CgpjbGFzcyBQcm9ncmFtCnsKICAgIHByaXZhdGUgc3RhdGljIHZvaWQgTWFpbigpCiAgICB7CiAgICAgICAgdmFyIHJlcGxhY2VDb2RlcyA9IG5ld1tdIHsgImJyb3duIiB9OwogICAgICAgIHZhciBzYiA9IG5ldyBTdHJpbmdCdWlsZGVyKCkuQXBwZW5kKCJUaGUgcXVpY2sgYmJyb3ducm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2ciKTsKICAgICAgICB2YXIgb3V0U3RyID0gcmVwbGFjZUNvZGVzLkFnZ3JlZ2F0ZShzYiwgU3RyaW5nQmlsZGVyQ2xlYW5lcikuVG9TdHJpbmcoKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZShvdXRTdHIpOwogICAgfQoKICAgIHN0YXRpYyBTdHJpbmdCdWlsZGVyIFN0cmluZ0JpbGRlckNsZWFuZXIoU3RyaW5nQnVpbGRlciBzYlN0ciwgc3RyaW5nIHJtU3RyKQogICAgewogICAgICAgIHZhciBzdGFydEluZGV4ID0gMDsKICAgICAgICBmb3IgKHZhciBpPTA7IGkgPCBzYlN0ci5MZW5ndGg7IGkrKykKICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgbCA9IGkgLSBzdGFydEluZGV4OwogICAgICAgICAgICAgICAgaWYgKGwgPT0gcm1TdHIuTGVuZ3RoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHNiU3RyLlJlbW92ZShzdGFydEluZGV4LCBsKTsKICAgICAgICAgICAgICAgICAgICBzdGFydEluZGV4ID0gaSsxOwogICAgICAgICAgICAgICAgfWVsc2UKICAgICAgICAgICAgICAgIGlmIChybVN0cltsXSAhPSBzYlN0cltpXSkgc3RhcnRJbmRleCA9IGkrMTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHNiU3RyOwogICAgfQp9