How to resolve the algorithm ABC problem step by step in the Raku programming language

Published on 12 May 2024 09:40 PM

How to resolve the algorithm ABC problem step by step in the Raku programming language

Table of Contents

Problem Statement

You are given a collection of ABC blocks   (maybe like the ones you had when you were a kid).
There are twenty blocks with two letters on each block. A complete alphabet is guaranteed amongst all sides of the blocks. The sample collection of blocks:

Write a function that takes a string (word) and determines whether the word can be spelled with the given collection of blocks.

The rules are simple:

Let's start with the solution:

Step by Step solution about How to resolve the algorithm ABC problem step by step in the Raku programming language

Source code in the raku programming language

multi can-spell-word(Str $word, @blocks) {
    my @regex = @blocks.map({ my @c = .comb; rx/<@c>/ }).grep: { .ACCEPTS($word.uc) }
    can-spell-word $word.uc.comb.list, @regex;
}
 
multi can-spell-word([$head,*@tail], @regex) {
    for @regex -> $re {
        if $head ~~ $re {
            return True unless @tail;
            return False if @regex == 1;
            return True if can-spell-word @tail, list @regex.grep: * !=== $re;
        }
    }
    False;
}
 
my @b = ;
 
for  {
    say "$_     &can-spell-word($_, @b)";
}


  

You may also check:
How to resolve the algorithm Matrix chain multiplication step by step in the Mathematica / Wolfram Language programming language
You may also check:How to resolve the algorithm Fibonacci sequence step by step in the Euphoria programming language
You may also check:How to resolve the algorithm Sorting algorithms/Bubble sort step by step in the Eiffel programming language
You may also check:How to resolve the algorithm Odd word problem step by step in the BaCon programming language
You may also check:How to resolve the algorithm General FizzBuzz step by step in the Java programming language