Ruby图形打印程序
我有一个散列并按以下模式打印: 投入1:Ruby图形打印程序,ruby,Ruby,我有一个散列并按以下模式打印: 投入1: { a: [1,2,3,4,5,6,7,8,9], b: [1,2,3,4,5,6], c: [2,3,4,5,6,7] } 产出1: A1 A2 A3 A4 A5 A6 A7 A8 A9 B1 B2 B3 B4 B5 B6 C2 C3 C4 C5 C6 C7 投入2: { a: [1,2,3,4,5,6,7], b: [2,3,4,5,6], c: [1,2,3,4,5,6,7] } 产出2: A1 A2 A3 A4
{
a: [1,2,3,4,5,6,7,8,9],
b: [1,2,3,4,5,6],
c: [2,3,4,5,6,7]
}
产出1:
A1 A2 A3 A4 A5 A6 A7 A8 A9
B1 B2 B3 B4 B5 B6
C2 C3 C4 C5 C6 C7
投入2:
{
a: [1,2,3,4,5,6,7],
b: [2,3,4,5,6],
c: [1,2,3,4,5,6,7]
}
产出2:
A1 A2 A3 A4 A5 A6 A7
B2 B3 B4 B5 B6
C1 C2 C3 C4 C5 C6 C7
例如。
如果我们考虑输入1,那么期望是,解决方案应该在缺少的数字位置添加空白空间。
=>它应该返回:
[
["A1","A2","A3","A4","A5","A6","A7","A8","A9"],
["B1","B2","B3","B4","B5","B6","","",""],
["","C2","C3","C4","C5","C6","C7","",""]
]
您可以为此使用集合、映射或每个
data = {a: [1,2,3,4,5,6,7,8,9],b: [1,2,3,4,5,6],c: [2,3,4,5,6,7]}
data.map{|k,v| (1..9).map{|a| data[k].include?(a) ? k.to_s.upcase() +a.to_s : ' '}}
hash.map{k,v|[k.to_s.upcase].product(v).map(&:join)}
这给出了大写字母与数字的组合,但在缺少的数字处添加了一个空格。这给出了大写字母与数字的组合,但在缺少的数字处添加了一个空格。data.map{k,v|v.compact.map{a|k.to_s.upcase()+a.to|s}您可以压缩数组以删除缺少的一个,需要将缺少的一个添加为空白数据。map{k,v |(1..9)。map{a | data[k]。包括?(a)?k.to|s.upcase()+a.to|s:'}