Загрузка...

Помогите с еге по барьба

Тема в разделе C# создана пользователем Ker257 3 янв 2023. 216 просмотров

Загрузка...
Опрос

Да?

Результаты будут видны только после голосования.
  1. Да.

  2. Нет.

  1. Ker257
    Ker257 Автор темы 3 янв 2023 0 11 фев 2022
    Вообще хз как сделать это на С#, в питоне метод 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

    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);

    }

    }

    }
     
    3 янв 2023 Изменено
  2. vtlstolyarov
    vtlstolyarov 3 янв 2023 474 8 янв 2022
    Ker257, Напиши свой Replace, с блэкджеком и шлюхами:
    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);
    }
     
    1. Ker257 Автор темы
Top