aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-195/carlos-oliveira/README1
-rw-r--r--challenge-195/carlos-oliveira/perl/ch-1.pl11
-rw-r--r--challenge-195/carlos-oliveira/perl/ch-2.pl30
3 files changed, 42 insertions, 0 deletions
diff --git a/challenge-195/carlos-oliveira/README b/challenge-195/carlos-oliveira/README
new file mode 100644
index 0000000000..f8182f8301
--- /dev/null
+++ b/challenge-195/carlos-oliveira/README
@@ -0,0 +1 @@
+Solution by Carlos Eduardo de Oliveira.
diff --git a/challenge-195/carlos-oliveira/perl/ch-1.pl b/challenge-195/carlos-oliveira/perl/ch-1.pl
new file mode 100644
index 0000000000..eb1c905189
--- /dev/null
+++ b/challenge-195/carlos-oliveira/perl/ch-1.pl
@@ -0,0 +1,11 @@
+use strict;
+use warnings;
+
+sub specialIntegers {
+ my ($limit) = @_;
+ return scalar grep { $_ !~ /(.).*\1/; } 1..$limit;
+}
+
+print specialIntegers(15), "\n"; # Output: 14
+print specialIntegers(35), "\n"; # Output: 32
+
diff --git a/challenge-195/carlos-oliveira/perl/ch-2.pl b/challenge-195/carlos-oliveira/perl/ch-2.pl
new file mode 100644
index 0000000000..c0a63c7f94
--- /dev/null
+++ b/challenge-195/carlos-oliveira/perl/ch-2.pl
@@ -0,0 +1,30 @@
+use strict;
+use warnings;
+
+sub mostFrequentEven {
+ my @numbers = sort @_;
+ my $currentNumber = $numbers[0];
+ my $maxEven = -1;
+ my $maxCount = 0;
+ my $currentCount = 0;
+ for my $elem (@numbers) {
+ next if $elem % 2;
+ if ($currentNumber == $elem) {
+ $currentCount++;
+ } else {
+ $currentCount = 1;
+ $currentNumber = $elem;
+ }
+ if ($currentCount > $maxCount) {
+ $maxEven = $elem;
+ $maxCount = $currentCount;
+ }
+ }
+ return $maxEven;
+}
+
+print mostFrequentEven(1,1,2,6,2), "\n";
+print mostFrequentEven(1,3,5,7), "\n";
+print mostFrequentEven(6,4,4,6,1), "\n";
+print mostFrequentEven(6,4,4,6,1,8,8,8), "\n";
+