How to resolve the algorithm Jewels and stones step by step in the Lambdatalk programming language

Published on 12 May 2024 09:40 PM

How to resolve the algorithm Jewels and stones step by step in the Lambdatalk programming language

Table of Contents

Problem Statement

Create a function which takes two string parameters: 'stones' and 'jewels' and returns an integer. Both strings can contain any number of upper or lower case letters. However, in the case of 'jewels', all letters must be distinct. The function should count (and return) how many 'stones' are 'jewels' or, in other words, how many letters in 'stones' are also letters in 'jewels'.

Note that: So, for example, if passed "aAAbbbb" for 'stones' and "aA" for 'jewels', the function should return 3. This task was inspired by this problem.

Let's start with the solution:

Step by Step solution about How to resolve the algorithm Jewels and stones step by step in the Lambdatalk programming language

Source code in the lambdatalk programming language

{def countjewels
 {def countjewels.r
  {lambda {:a :b :c}
   {if {A.empty? :a}
    then :c
    else {countjewels.r {A.rest :a}
                        :b
                        {if {= {A.in? {A.first :a} :b} -1}
                         then :c
                         else {+ :c 1}}}}}}
 {lambda {:a :b}
  {countjewels.r {A.split :a} {A.split :b} 0}}} 
-> countjewels

{countjewels aAAbbbb aA} -> 3
{countjewels ZZ z}       -> 0


  

You may also check:How to resolve the algorithm Set step by step in the RPL programming language
You may also check:How to resolve the algorithm Visualize a tree step by step in the C programming language
You may also check:How to resolve the algorithm Polyspiral step by step in the AutoHotkey programming language
You may also check:How to resolve the algorithm Order disjoint list items step by step in the D programming language
You may also check:How to resolve the algorithm Longest common subsequence step by step in the Mathematica/Wolfram Language programming language