谢谢
我用 hash = {}在做 leecode 上一个题目提交遇到错误了,然后换了 set=Set.new 提交通过了。让我以为 Set 使用的是和 Hash 不同的结构,才问了最初的问题。看了你们的回复,我又用 hash = Hash.new 代替 hash = {} ,提交就通过了。 是否 hash = {} 和 hash = Hash.new 背后是不同的?
谢谢
arrs.sort { |arr1, arr2| (arr1.first <=> arr2.first) + (arr2.last <=> arr1.last) } 这种方式不行
谢谢!你是怎么知道这个用法的。
irb(main):516:0> a=[0,1,2,3,4,5,6]
=> [0, 1, 2, 3, 4, 5, 6]
irb(main):517:0> b=[1,1,1,2,2]
=> [1, 1, 1, 2, 2]
irb(main):518:0> a[3,2] + b[3,2]
=> [3, 4, 2, 2] #**********想要的a的元素
irb(main):519:0> a.slice!(3,2)
=> [3, 4]
irb(main):520:0> a.push(*b[3,2])
=> [0, 1, 2, 5, 6, 2, 2]
irb(main):521:0> a
=> [0, 1, 2, 5, 6, 2, 2] #***********a的元素与想要的[3, 4, 2, 2] 不同
如上,两行注释 不等呀!
a.slice!(n,m) 是在 a 中删除元素 [n,m], 不是使得 a 变为原 a 的 [n,m]
a.slice!(1..-1) a.push(*b[0,1])
这是我用的方法,但要做 a[n,m] + b[n,m] 就比较麻烦
begin
s += (cn % 2).to_s
cn /= 2
end while cn > 0
s.reverse
这是一段将整数 cn 转换为二进制字符串的代码, 若写成 while cn >= 0 *** end 的形式 那么当 cn==0 时会无限循环。如果 条件改成 while cn > 0 那么对于整数 0 不能执行块中的代码,将其转换二进制字符串了,如果将整数 0 做单独处理,又显得累赘了。
可能在$LOAD_PATH 中添加了当前路径 '.'
谢谢!
ttps://www.youtube.com/watch?v=VbYW92tRiR4&list=PLrre1E9QE93-XJq1sSHjN2UYm22jB2Grp&index=21 但他为什直接写 require 'file' 程序能正常运行
谢谢!
安装 libreadline6-dev 后无效,卸载并重新安装 ruby 2.4.1,问题依旧。
安装系统(OS: Debian 8.9 jessie)软件库里的 ruby 版本没有此问题,版本是 ruby2.1.0
n =~ Regexp.new(m) || m =~ Regexp.new(n)