鉴于此问题,您会使用哪个答案? (第一个是新兵训练营的方法,第二个是我的)当测试训练营的方法时,它永远不会返回所需的答案,但在测试我的方法时它起作用。我觉得作为一个初学者,新兵训练营是不对的,所以我想知道是否有一些我缺少的东西。谢谢您的帮助!对不起,问题格式怪异。我非常新。 (这是适用于App Academy的Jumpstart所以基本上是训练营前训练营)
编写一个方法,该方法以降序和字符串形式返回非负整数的数字数组,例如:
descending_digits(4291) #=> ["9", "4", "2", "1"]
def descending_digits(int)
**# your code goes here**
end
#method 1
int.to_s.split("").sort.reverse
#method 2
int.sort.reverse.join(" ").split
答案 0 :(得分:1)
method 1 is correct here is explanation
a = 4291 # a is variable number 4291
=> 4291
irb(main):005:0> a.to_s # convert a to string
=> "4291"
irb(main):006:0> a.to_s.split("") # split each character
=> ["4", "2", "9", "1"]
irb(main):007:0> a.to_s.split("").sort # sort it, default is ascending
=> ["1", "2", "4", "9"]
irb(main):008:0> a.to_s.split("").sort.reverse # reverse it to descending
=> ["9", "4", "2", "1"]
method 2
a = 4291
a.sort # will return an error
答案 1 :(得分:0)
您的方法(#method 2)不正确,因为>>> import random
>>> import numpy as np
>>> bytearray(random.getrandbits(8) for _ in range(3 * 4 * 4))
bytearray(b'{)jg\xba\xbe&\xd1\xb9\xdd\xf9@\xadL?GV\xca\x19\xfb\xbd\xad\xc2C\xa8,+\x8aEGpo\x04\x89=e\xc3\xef\x17H@\x90]\xd5^\x94~/')
>>> rgb = bytearray(random.getrandbits(8) for _ in range(3 * 4 * 4))
>>> np.array(rgb)
array([112, 68, 7, 41, 175, 109, 124, 111, 116, 6, 124, 168, 146,
60, 125, 133, 1, 74, 251, 194, 79, 14, 72, 236, 188, 56,
52, 145, 125, 236, 86, 108, 235, 9, 215, 49, 190, 16, 90,
9, 114, 43, 214, 65, 132, 128, 145, 214], dtype=uint8)
>>> np.array(rgb).reshape(4,4,3)
array([[[112, 68, 7],
[ 41, 175, 109],
[124, 111, 116],
[ 6, 124, 168]],
[[146, 60, 125],
[133, 1, 74],
[251, 194, 79],
[ 14, 72, 236]],
[[188, 56, 52],
[145, 125, 236],
[ 86, 108, 235],
[ 9, 215, 49]],
[[190, 16, 90],
[ 9, 114, 43],
[214, 65, 132],
[128, 145, 214]]], dtype=uint8)
是一种数组方法,而不是sort
或string
方法。