Ruby Game challengesのうちの1つでは、指定された文字列の中で最長の回文部分文字列を探すように求められますので、abacdfgdcabaypqqpy
からypqqpy
を抽出する必要があります。このコードスニペットは、文字列からパリンドローム部分文字列をどのように見つけますか?
w = string.size
l = (w.to_f/2).ceil
l.upto(w-1) do |j|
i = w-j
l.upto(w-i+1) do |n|
s = string[n,i]
return s if s == s.reverse
end
end
、誰もがそれがどのように機能するかについて簡単に説明を与えることを気になります[正規表現を使用していません]与えられた応募作品の一つが、このでしたか?
P.Sこれは有効な質問ですか?
問題は、このコードは* *正しくない、です。これは '' addaabcd''のような入力に失敗します。ここでは、回文は前半にあります。それを説明することはできませんが、必要ならば、正規表現なしで動作するいくつかのコードを一緒に解読して、説明を付けることができます。 –