Вставьте пробел в строку - PullRequest
0 голосов
/ 11 апреля 2020

Я пытаюсь вставить пробел перед заглавной буквой, если она найдена. Вот то, что я придумал, но кажется, что это бесконечный l oop. Я не знаю почему:

def solution(string)
  str = string.split("")
  str.each_with_index do |l, i|
   if l.upcase
    str.insert(l[i], " ")
   end
  end
  str.join("")
end

пожалуйста, дайте мне знать, что мне не хватает.

1 Ответ

3 голосов
/ 11 апреля 2020

Потому что часто плохая идея поменять объект, на котором вы зацикливаетесь. Вы вставляете пробел перед найденной заглавной буквой, поэтому на следующей итерации вы снова нашли заглавную букву и все повторяется.

В этом случае регулярное выражение кажется подходящим

def solution(string)
  string.gsub(/[[:upper:]]/, ' \0')
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...