-2

再帰ごとに、次のような新しい文字列を取得します: [3 x i32] しかし、[5 x i32][4 x i32] は取得したくありません... しかし、それらを [5 x [4 x [3 x i32]]]、どうすればそれを取得できますか? (元の文字列が変数oldにあり、新しい文字列がnewに格納されているとします。) ありがとう。

4

1 に答える 1

0
def step(old = '', start = 5)
  if old =~ /\A\z/ or old =~ /\A\[\]\z/
    old = "[#{start} x i32]"
  else
    old.sub!(/(\d+)( x i32)/) do |match|
      num = Integer($1)
      "#{$1} x [#{num - 1}#{$2}]"
    end
  end
end

new = step
puts new
1.upto(5) do
  new = step(new)
  puts new
end
于 2013-03-31T05:52:56.260 に答える