Я пытаюсь добавить строку (состоящую из символов из другой строки, повторяемой в цикле for) в массив. Но по какой-то причине, когда я выводил элементы массива в конце, они все отключены.
Вот мой вывод для кода, который у меня есть:
r
racecar
a
aceca
c
cec
e
c
a
r
Final list:
racecar
racecar
acecar
acecar
cecar
cecar
ecar
car
ar
r
Я попытался добавить пустую строку в конец моего оператора, вот так:
list << string_current + ""
и, похоже, проблема решена. Кто-нибудь знает, почему это так?
def longest_palindrome(s)
n = s.length
max_string = ""
max_string_current = ""
string_current = ""
list = []
counter = 0
for i in (0...n)
for j in (i...n)
string_current << s[j]
# puts "string_current: #{string_current}"
if is_palindrome(string_current)
counter += 1
puts string_current
list << string_current
end
end
string_current = ""
end
puts "Final list:"
list.each do |item|
puts "#{item}"
end
end
def is_palindrome(string)
for i in (0..string.length/2)
if string[i] != string[string.length-1-i]
return false
end
end
return true
end
longest_palindrome("racecar")
Я думал, что элементы в моем окончательном списке должны быть идентичны тем, которые были добавлены в список во время.
list << string_current