Нужно написать алгоритм, который заменит все вхождения строки
initial в строку
line на
final.
Так нужно делать до тех пор, пока в строке
line не останется фрагментов равных
initial.
Пример входных данных:
line = "abbacabba"
initial = "ba"
final = "a"
Выходные данные: aaacaaa
Я написал две реализации: с использованием
string.Replace(...) и с
Regex.Replace(...)
Первая версия проходит все тесты, но
не укладывается по времени.
А вот вторая выдаёт
неправильный ответ на 6/10 тесте (К сожалению,
тесты скрыты).
Как такое возможно? Разве
Regex.Replace(...) и
string.Replace(...) работают по-разному?
Первая реализация:
static string ReplacedStringWithRegex(string line, string initial, string final)
{
while (line.Contains(initial))
line = Regex.Replace(line, initial, final);
return line;
}
Вторая реализация:
static string ReplacedStringWithoutRegex(string line, string initial, string final)
{
while (line.Contains(initial))
line = line.Replace(initial, final);
return line;
}