aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNuno Vieira <nunovieira220@gmail.com>2021-02-12 01:46:48 +0000
committerNuno Vieira <nunovieira220@gmail.com>2021-02-12 01:46:48 +0000
commitdc7f4663f21944c4200251e7dee2e6c4b844338c (patch)
tree32b008ce179fd92c07df5b3f2c532c2e8a193188
parent090da47b42eb061cec9f7f395e6aa17fd0b500a1 (diff)
downloadperlweeklychallenge-club-dc7f4663f21944c4200251e7dee2e6c4b844338c.tar.gz
perlweeklychallenge-club-dc7f4663f21944c4200251e7dee2e6c4b844338c.tar.bz2
perlweeklychallenge-club-dc7f4663f21944c4200251e7dee2e6c4b844338c.zip
Add nunovieira220 perl solution to challenge 099
-rw-r--r--challenge-099/nunovieira220/perl/ch-1.pl18
-rw-r--r--challenge-099/nunovieira220/perl/ch-2.pl25
2 files changed, 43 insertions, 0 deletions
diff --git a/challenge-099/nunovieira220/perl/ch-1.pl b/challenge-099/nunovieira220/perl/ch-1.pl
new file mode 100644
index 0000000000..9f4be9dc9c
--- /dev/null
+++ b/challenge-099/nunovieira220/perl/ch-1.pl
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use feature qw(say);
+
+# Input
+my $S = "abcde";
+my $P = "a*c?e";
+
+# Pattern Match
+$P =~ s/(\?|\*)/\.$1/g;
+
+my $res = 0;
+$res = 1 if ($S =~ m/^${P}$/);
+
+# Output
+say($res);
diff --git a/challenge-099/nunovieira220/perl/ch-2.pl b/challenge-099/nunovieira220/perl/ch-2.pl
new file mode 100644
index 0000000000..86a27b3db4
--- /dev/null
+++ b/challenge-099/nunovieira220/perl/ch-2.pl
@@ -0,0 +1,25 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use feature qw(say);
+
+# Input
+my $S = "littleit";
+my $T = "lit";
+
+# Output
+say(counter($S, $T));
+
+# Unique Subsequence
+sub counter {
+ my ($S, $T) = @_;
+
+ return 0 if(!length($T) || !length($S));
+
+ my $index = index($S, substr($T, 0, 1));
+ my $last = length($T) == 1 ? 1 : 0;
+
+ return 0 if($index == -1);
+ return $last + counter(substr($S, $index + 1), $T) + counter(substr($S, $index + 1), substr($T, 1));
+}