Quick actions

cmd+k|ctrl+k

Navigation

Languages

Caveman Number Count

Snippet info

Language

Raku

Visibility

public

Author

seaker

Created

2021-05-05T04:00:09.642735Z

Updated

2021-05-05T10:33:40.895553Z

my @digits = <ook ookook oog ooga ug mook mookmook oogam oogum ugug>;

sub sequence-count(Str:D $n --> UInt:D) {
    return 1 if !$n;

    my UInt $cnt = 0;
    for @digits -> $d {
        if $n.starts-with($d) {
            $cnt += sequence-count(substr($n, $d.chars));
        }
    }
    return $cnt;
}

use Test;

is sequence-count('ookookook'), 3, 'ookookook => 3';
is sequence-count('oogamookoogumook'), 2, 'oogamookoogumook => 2';
is sequence-count('oogoogumookookmookmookookookmookook'), 8, 'oogoogumookookmookmookookookmookook => 8';
is sequence-count('mookookookugoogumoogummookmookugmookookmookmook'), 8, 'mookookookugoogumoogummookmookugmookookmookmook => 8';
is sequence-count('mookmookoogamoogumookookugoogugoogammookmookookookoogoogumugugookmookoogugug'), 64, 'mookmookoogamoogumookookugoogugoogammookmookookookoogoogumugugookmookoogugug => 64';
is sequence-count('ookugugugugoogookookugugugugmookmookugugugugugookookmookmookmookmookoogmookmookoogaooga'), 16000, 'ookugugugugoogookookugugugugmookmookugugugugugookookmookmookmookmookoogmookmookoogaooga => 16000';

done-testing;
INFO