ruby – 获取字符串的所有前缀列表
发布时间:2020-12-16 21:16:01 所属栏目:百科 来源:网络整理
导读:Ruby String类中是否有任何内置函数可以为我提供Ruby中字符串的所有前缀.就像是: "ruby".all_prefixes = ["ruby","rub","ru","r"] 目前我已为此制作了自定义功能: def all_prefixes search_string dup_string = search_string.dup return_list = [] while(
Ruby String类中是否有任何内置函数可以为我提供Ruby中字符串的所有前缀.就像是:
"ruby".all_prefixes => ["ruby","rub","ru","r"] 目前我已为此制作了自定义功能: def all_prefixes search_string dup_string = search_string.dup return_list = [] while(dup_string.length != 0) return_list << dup_string.dup dup_string.chop! end return_list end 但我正在寻找更多的rubylike,更少的代码和神奇的东西. 解决方法
快速基准:
require 'fruity' string = 'ruby' compare do toro2k do string.size.times.collect { |i| string[0..i] } end marek_lipka do (0...(string.length)).map{ |i| string[0..i] } end jorg_w_mittag do string.chars.inject([[],'']) { |(res,memo),c| [res << memo += c,memo] }.first end jorg_w_mittag_2 do acc = '' string.chars.map {|c| acc += c } end stefan do Array.new(string.size) { |i| string[0..i] } end end 最终获胜者是: Running each test 512 times. Test will take about 1 second. jorg_w_mittag_2 is faster than stefan by 19.999999999999996% ± 10.0% stefan is faster than marek_lipka by 10.000000000000009% ± 10.0% marek_lipka is faster than jorg_w_mittag by 10.000000000000009% ± 1.0% jorg_w_mittag is similar to toro2k (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |