【发布时间】:2026-02-18 19:50:01
【问题描述】:
我正在尝试从多维数组中获取最长的字符串,但由于某种原因它无法正常工作。
这就是我所拥有的:
a =
["MAKKGKPRPDHRPPAHNPHYAHDPPPYSQQQPPLQQQNYAQQMNRQHARPRPSPPSEVSDCVKYSLFLYNCIFWVSMHSS"],
["MHHGGGGGNRQHARPRPSPPSEVSDCVKYSLFLYNCIFWVSMHSS"], ["MTYINLGVTRTGDLMIGRHRP"],
["MRIYNRVCFQTAGCYLQNLVTTSIQPARVWTY"], ["MAACGLGRVFSAFKVDEMD"],
["MPSGFVGKRSGFCQFCCSHI"], ["MTYSTAKEGAYPFRNFN"]]
p a.max_by{|v|v}[0] # => "MTYSTAKEGAYPFRNFN"
有人可以告诉我我做错了什么吗?
【问题讨论】:
-
当您创建样本数据(例如阵列中的内容)时,将其剥离到演示问题所需的最低限度。我建议使用
[['a'], ['bb'], ['ccc']]之类的东西就足够了。 -
子数组是否有可能包含其他元素?或者,它们会总是只有一个元素吗?
-
对不起,将来会尽量减少任何问题...子数组始终包含一个元素-它们是前瞻扫描的结果...但是我已经将其展平成一个数组...
-
是的,扁平数组更适合使用。您可能想首先检查并了解为什么要获取数组数组。您也许可以简化代码以不生成这些代码。当我学习 Ruby 并且没有正确使用
map时,我曾经得到很多。
标签: ruby arrays sorting multidimensional-array