Вообще хз как сделать это на С#, в питоне метод replace может заменить значение в строке один раз, а на C# он меняет все значения во всей строке. Задача Исполнитель Редактор получает на вход строку цифр и преобразует её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр. А)заменить (v, w). Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды заменить (111, 27) преобразует строку 05111150 в строку 0527150. Если в строке нет вхождений цепочки v, то выполнение команды заменить (v, w) не меняет эту строку. Б)нашлось (v). Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется. Цикл ПОКА условие последовательность команд КОНЕЦ ПОКА выполняется, пока условие истинно. Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 84 единиц? НАЧАЛО ПОКА нашлось (11111) заменить (222, 1) заменить (111, 2) КОНЕЦ ПОКА КОНЕЦ Должно получиться 222111 У меня получается так, но что делать с реплейсом? Из за него все стопорится на значении 2222222222222222222222222222 using System; namespace leorn { public class Program { static void Main() { string s = "111111111111111111111111111111111111111111111111111111111111111111111111111111111111"; bool b = s.Contains("11111") ; while (b) { s = s.Replace("222", "1"); s = s.Replace("111", "2"); b = s.Contains("11111") ; } Console.WriteLine(s); } } } CSHARP using System; namespace leorn { public class Program { static void Main() { string s = "111111111111111111111111111111111111111111111111111111111111111111111111111111111111"; bool b = s.Contains("11111") ; while (b) { s = s.Replace("222", "1"); s = s.Replace("111", "2"); b = s.Contains("11111") ; } Console.WriteLine(s); } } }
Ker257, Напиши свой Replace, с блэкджеком и шлюхами: public string ReplaceFirst(string text, string search, string replace) { int index = text.IndexOf(search); if (index == -1) { return text; } return text.Substring(0, index) + replace + text.Substring(index + search.Length); } CSHARP public string ReplaceFirst(string text, string search, string replace) { int index = text.IndexOf(search); if (index == -1) { return text; } return text.Substring(0, index) + replace + text.Substring(index + search.Length); }