入力された文字列の最長回文部分文字列を返す関数を開発しようとしています。Ruby Longest Palindromeサブストリング関数の奇妙な出力
def longest_palindrome(s)
place = 0
array = s.chars
output = []
while place < s.length
output << (array[0]..array[place]).to_a
place += 1
end
return output
end
が与えられた文字列「アベバは、」私はへの結果の配列を期待する場合:私は今、各サブセクションは、それは次のようにpalindromeTheコードがあるかどうかを確認するために分析することができるように、文字列を分割するに取り組んでいます次のようになります。
[["a"],["a","b"],["a","b","a"],["a","b","a","b"],["a","b","a","b","a"]]
しかし、私は、出力配列を返すとき、これは内部に保存されているものです。
[["a"], ["a", "b"], ["a"], ["a", "b"], ["a"], ["a", "b"]]
この現象が発生する原因となっている私の機能については何?
編集:私はこのために別のトピックを起動する必要がある場合
わかりません。次のように私のコードは以下のようになります。
def longest_palindrome(s)
array = s.chars
start = 0
place = 1
output = []
while start < s.length - 1
while place < s.length
output << array[start..place]
place += 1
end
start += 1
end
return output
end
私のロジックが、これは、インデックス0から始まる文字列全体が完了するまで、徐々に文字列の1文字以上捉えるということです。次に、索引1で開始し、文字列内の可能なすべての部分文字列を取得するまで同じ処理を行います。ただし、返されるのは:
[["a"],["a","b"],["a","b","a"],["a","b","a","b"],["a","b","a","b","a"]]
ロジックの瑕疵はどこにありますか?
ありがとうございます!完璧な意味合いがあります。 – John