ruby – 如何以一切可能的方式将字符串拆分为长度最多为3的连续
发布时间:2020-12-17 03:34:59 所属栏目:百科 来源:网络整理
导读:我试图在长度1和10之间取一个字符串,并输出所有可能的方法将字符串分解为大小为1,2或3的连续子字符串.例如: 输入:123456 将整数切成单个字符,然后继续查找组合. 代码将返回以下所有数组. [1,2,3,4,5,6] [12,6] [1,23,34,45,56] [12,56] [1,56] [123,234,34
我试图在长度1和10之间取一个字符串,并输出所有可能的方法将字符串分解为大小为1,2或3的连续子字符串.例如:
输入:123456 将整数切成单个字符,然后继续查找组合. [1,2,3,4,5,6] [12,6] [1,23,34,45,56] [12,56] [1,56] [123,234,345,456] [123,456] [1,6] 我想用ruby做这件事.谢谢! 解决方法
这是一个有效的功能.可能不是最佳的,因为我没有花太多时间.
str = "1234567890" def f(s,n) return [[]] if s.empty? (1..[n,s.length].min).map{|c| f(s[c..-1],n).map{|a| [s[0,c]] + a}}.inject(&:+) end puts f(str,3).collect{|l| l * "t"} 编辑:使它缩短一点,现在作为第二个参数传递长度以实现灵活性. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |