Я пытаюсь вызвать первый повторяющийся символ в моей строке в Ruby. Я определил входную строку, используя get.Поиск первого повторяющегося символа в строке Ruby
Как я могу назвать первый повторяющийся символ в строке?
Это мой код.
string = "#{gets}"
print string
Как я могу назвать символ из этой строки? не
Edit 1:
Это код, у меня сейчас, когда мой выход выходит ко мне Нет дублирует 26 раз. Я думаю, что мое утверждение if ошибочно написано.
string "abcade"
puts string
for i in ('a'..'z')
if string =~ /(.)\1/
puts string.chars.group_by{|c| c}.find{|el| el[1].size >1}[0]
else
puts "no duplicates"
end
end
Моя вторая не ставит выписки работает, но с для и если петли, она возвращает не дублирует 26 раз независимо от струна.
ли Вы хотите знать, первый дубликат символа или индекс где это происходит? «Тестер» считается дублированным, поскольку у него есть два символа 'e', или вы собираетесь найти такие вещи, как' billing'? – tadman
Вам нужно будет перебирать строку, сохраняя набор уже найденных символов и останавливать итерацию, как только набор содержит текущий символ. Один из способов доступа к строковым символам - использовать нотацию индекса массива, например, 's [0]' и т. Д. Другим является итерация с использованием 'each_char'. Есть много вариантов. –
Добро пожаловать в переполнение стека. В вашем коде генерируется ошибка синтаксической ошибки "' undefined method 'string' для main: Object (NoMethodError) '. Возможно, это потому, что вы не скопировали свой код в вопрос правильно? «Вопросы, требующие помощи по отладке (« почему этот код не работает? ») Должны включать в себя желаемое поведение, конкретную проблему или ошибку и кратчайший код, необходимый для его воспроизведения в самом вопросе. Вопросы без явного заявления о проблемах не полезны другим читателям. См.: [Как создать минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve). " –