各位高手!怎么提取最长的连续1序列啊,晕了!
mathematica吧
全部回复
仅看楼主
吧务
level 7
wengdeping88 楼主
输入:{1, 1, 318, 1, 1, 1, 1, 38, 1, 47, 12, 5, 22, 1, 1, 1}
输出:{1,1,1,1}
2021年02月02日 08点02分 1
吧务
level 10
SequenceCases Repeated Longest
2021年02月02日 10点02分 2
试了一下,还是不得要领,请赐教![汗]
2021年02月02日 11点02分
@wengdeping88 Last@SortBy[SequenceCases[%,{1...}],Length]
2021年02月02日 12点02分
谢谢!
2021年02月02日 13点02分
吧务
level 12
{1, 1, 318, 1, 1, 1, 1, 38, 1, 47, 12, 5, 22, 1, 1,
1} /. {___, x : Longest[1 ..], ___} :> {x}
2021年02月02日 14点02分 4
吧务
level 12
序列很长的时候模式匹配会比较慢,再给个稍微快一点的
FoldList[If[
#2 == 1, #
1 + 1, 0] &, {1, 1, 318, 1, 1, 1, 1, 38, 1, 47,
12, 5, 22, 1, 1, 1}] // ConstantArray[1, Max@#] &
2021年02月02日 15点02分 5
谢谢,学到了!
2021年02月03日 00点02分
1