Monday, April 7, 2025

TWC316

Challenge Link

Task1

For each pair we check if the last character of first one is equal to first of second:

#!/usr/bin/env perl
use strict;
use warnings;

sub circular{
  for(my $i = 0; $i < $#{$_[0]}; $i++) {
    my $l = substr($_[0]->[$i],-1);
    my $f = substr($_[0]->[$i+1],0,1);
    return 0 unless $l eq $f
  }
  1
}

printf "%d\n",circular(['perl','loves','scala']);
printf "%d\n",circular(['love','the','programming']);
printf "%d\n",circular(['java','awk','kotlin','node.js']);

Task2

We check if the characters of first string occur in the second in order:

#!/usr/bin/env perl
use strict;
use warnings;

sub subsequence{
  my @idx = map{index $_[1],$_} split '',$_[0];
  join('',@idx) eq join '',sort{$a <=> $b} @idx
}

printf "%d\n",subsequence('uvw','bcudvew');
printf "%d\n",subsequence('aec','abcde');
printf "%d\n",subsequence('sip','javascript');

No comments:

Post a Comment