-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 回答