gpt4 book ai didi

ruby - 以有效的方式将字符串拆分为多个部分

转载 作者:太空宇宙 更新时间:2023-11-03 17:11:36 25 4
gpt4 key购买 nike

我的代码在这里

str = "Early in his first term in office, Obama signed into law economic stimulus legislation in response"
arr= str.split(" ")
set_element= arr.each_cons(2).to_a
sub_str = set_element.map {|i| i.join(' ')}

如果我有一个很大的字符串,比如非常大的字符串,那么这个过程需要 6.50 秒因为我想要这种结果

sub_str= ["Early in", "in his", "his first", "first term", "term in", "in office,", "office, Obama", "Obama signed", "signed into", "into law", "law economic", "economic stimulus", "stimulus legislation", "legislation in", "in response"]

有没有其他更有效的方法

最佳答案

使用扫描而不是拆分,你可以直接得到你的词对。

s.scan(/\S+(?:\s+\S+)?/)

编辑:为了让自己确信这是相对有效的,我做了 a little micro-benchmark .以下是迄今为止看到的答案的结果:

ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-linux]
10 times on string of size 2284879
user system total real
original 4.180000 0.070000 4.250000 ( 4.272856)
sergio 2.090000 0.000000 2.090000 ( 2.102469)
dbenhur 1.050000 0.000000 1.050000 ( 1.042167)

关于ruby - 以有效的方式将字符串拆分为多个部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15563251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com