def number = 169// need a method in groovy to find the consecutive numbers that is,1,6,9,16,69,169// not 19!
Groovy中有一个名为subsequences()的方法,但这并没有完全做好这项工作.谁能说我怎么能用GroovIEr方式做到这一点?或者有内置方法吗?
解决方法 虽然在游戏后期,这里的解决方案不如@ tim的复杂,但也可以解决问题:def str = 169 as Stringdef result = [] as SortedSet(0..<str.length()).each { i -> (i..<str.length()).each { j -> result << str[i..j].toInteger() }}
编辑:
代码就像两个嵌套循环一样,迭代数字的String表示并从中提取各种子字符串.
外部循环表示子字符串的起始索引,内部循环表示子字符串的结束索引.外部循环将从String的开头到结尾,而内部循环从当前的起始索引开始并从那里开始到结束.
as SortedSet确保结果中没有重复的数字,并且数字按升序排序.
1 6 9 ----- 0 1 2 <-- index =====[1]6 9 (i=0; j=0)[1 6]9 (i=0; j=1)[1 6 9] (i=0; j=2) 1[6]9 (i=1; j=1) 1[6 9] (i=1; j=2) 1 6[9] (i=2; j=2)总结
以上是内存溢出为你收集整理的Groovy序列的一个数字全部内容,希望文章能够帮你解决Groovy序列的一个数字所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)