Comment detail

文字列の均等分割 (Nested Flatten)
例えば5分割の場合、以下のように配列を作成後、文字が入っている所に入力文字を当てはめていくようにしました。

"ゆはのげゝら四にれたも"
"めかなきあす月もばくて"
"よなかわかほ十な木らゆ"
"りきをびしどよりのがく"
"も世なつくにひぬしり"

shiroさんと同様のロジックですね。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
def strDiv(n,s)
  r = [[]]
  s1 = s.split(//)
  while s1!=[]
    1.upto(n) {|i|
      (r[i-1] ||= []) << s1.shift
    }
  end
  s1 = s.split(//)
  r.each {|i|
    i.each {|j|
      print s1.shift if j
    }
    puts
  }
end


strDiv(5,"ゆめよりもはかなき世のなかをなげきわびつゝあかしくらすほどに四月十よひにもなりぬれば木のしたくらがりもてゆく")

Index

Feed

Other

Link

Pathtraq

loading...