Task1
We basically count the number of occurrences of characters and return the duplicated one. We can do this more compactly with regexp:
#!usr/bin/env perl
use strict;
use warnings;
sub twice_appearance{
reverse($_[0]) =~ /.*(.).*?\1/
}
printf "%s\n",twice_appearance('acbddbca');
printf "%s\n",twice_appearance('abccd');
printf "%s\n",twice_appearance('abcdabbb');
Task2
We count the number of asterisks of the wanted portions of the string:
#!usr/bin/env perl
use strict;
use warnings;
sub count_asterisks{
my $str = $_[0] =~ s/\|[^\|]*\|//gmixr;
$_ = () = $str =~ /(\*)/gmix;
}
printf "%d\n",count_asterisks('p|*e*rl|w**e|*ekly|');
printf "%d\n",count_asterisks('perl');
printf "%d\n",count_asterisks('th|ewe|e**|k|l***ych|alleng|e');
No comments:
Post a Comment