楼主怕是不知道ruby的array是comparable并定义了<=>运算? 当然默认是按照第一个元素排序 |
ruby这么OOP的语言不来点花式写法? class MyClass include Comparable attr_accessor :str, :int def initialize(str, int) @str, @int = str, int end def <=>(obj) self.to_i <=> obj.to_i end def to_i self.int end def to_s "[#{str.inspect}, #{int}]" end end a = ('元素a'..'元素e').to_a.zip((1..5).to_a.shuffle!).map { |e| MyClass.new(*e) } puts a puts a.sort |
本帖最后由 RyanBern 于 2022-2-18 22:33 编辑 RUBY 代码复制
或者 RUBY 代码复制
|
一个思路:拆分前作标志,重新排序后按标志恢复。如果是主楼中的不重复数字,用几个for循环判断标志就可以了。 对于可重复数字有点难度,不知道sort的组成内容是什么,如果有sort的非集成结构,即原生的基础代码,应该也可能把标志安插进去处理。 |
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2024-11-22 17:58
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.