заменить строки внутри подстроки - PullRequest
0 голосов
/ 22 октября 2010

У меня есть эта строка: " Быстрый коричневый f0x прыгает 0 ленивый d0g, быстрый коричневый f0x прыгает 0 ленивый d0g. ".

Мне нужна функция, которая заменит все нулей между " brown " и " lazy " на " o ". Таким образом, результат будет выглядеть так: « Быстрая коричневая лиса перепрыгивает через ленивого d0g, быстрая коричневая лиса перепрыгивает через ленивого d0g. ». Таким образом, он будет выглядеть по всей строке и, что наиболее важно, оставит все остальные нули без изменений.

function(text, leftBorder, rightBorder, searchString, replaceString) : string;

Есть ли хороший алгоритм?

1 Ответ

1 голос
/ 22 октября 2010

Если у вас есть Python, вот пример, использующий только строковые манипуляции, например, split(), indexing и т. Д. Ваш язык программирования также должен иметь эти функции.

>>> s="The quick brown f0x jumps 0ver the lazy d0g, the quick brown f0x jumps 0ver the lazy d0g."
>>> words = s.split("lazy")
>>> for n,word in enumerate(words):
...     if "brown" in word:
...         w = word.split("brown")
...         w[-1]=w[-1].replace("0","o")
...         word = 'brown'.join(w)
...     words[n]=word
...
>>> 'lazy'.join(words)
'The quick brown fox jumps over the lazy d0g, the quick brown fox jumps over the lazy d0g.'
>>>

Шаги:

  1. Разделить слова "ленивый" на массив A
  2. Пройдите через каждый элемент в A, чтобы найти «коричневый»
  3. если найден, разделить «коричневый» на массив B. Часть, которую вы собираетесь изменить, это последний элемент
  4. замените его любыми методами, которые предоставляет ваш язык программирования
  5. объединить массив B, используя "коричневый"
  6. обновить этот элемент в первом массиве A
  7. наконец, присоедините всю строку обратно, используя "lazy"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...