aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-340/spadacciniweb/perl/ch-1.pl1
-rw-r--r--challenge-340/spadacciniweb/perl/ch-2.pl69
2 files changed, 69 insertions, 1 deletions
diff --git a/challenge-340/spadacciniweb/perl/ch-1.pl b/challenge-340/spadacciniweb/perl/ch-1.pl
index 36296dbebd..c98cbdf9fa 100644
--- a/challenge-340/spadacciniweb/perl/ch-1.pl
+++ b/challenge-340/spadacciniweb/perl/ch-1.pl
@@ -75,7 +75,6 @@ sub get_noduplicate {
do {
$str =~ s/(\w)\1//;
-
} while $str =~ /(\w)\1/;
printf "'%s' -> '%s'\n", $str_orig, $str;
diff --git a/challenge-340/spadacciniweb/perl/ch-2.pl b/challenge-340/spadacciniweb/perl/ch-2.pl
new file mode 100644
index 0000000000..e22e5c7e24
--- /dev/null
+++ b/challenge-340/spadacciniweb/perl/ch-2.pl
@@ -0,0 +1,69 @@
+#!/usr/bin/env perl
+
+# Task 2: Ascending Numbers
+# Submitted by: Mohammad Sajid Anwar
+#
+# You are given a string, $str, is a list of tokens separated by a single space. Every token is either a positive number consisting of digits 0-9 with no leading zeros, or a word consisting of lowercase English letters.
+# Write a script to check if all the numbers in the given string are strictly increasing from left to right.
+#
+# Example 1
+# Input: $str = "The cat has 3 kittens 7 toys 10 beds"
+# Output: true
+#
+# Numbers 3, 7, 10 - strictly increasing.
+#
+# Example 2
+# Input: $str = 'Alice bought 5 apples 2 oranges 9 bananas'
+# Output: false
+#
+# Example 3
+# Input: $str = 'I ran 1 mile 2 days 3 weeks 4 months'
+# Output: true
+#
+# Example 4
+# Input: $str = 'Bob has 10 cars 10 bikes'
+# Output: false
+#
+# Example 5
+# Input: $str = 'Zero is 0 one is 1 two is 2'
+# Output: true
+
+use strict;
+use warnings;
+
+my $str = "The cat has 3 kittens 7 toys 10 beds";
+ascending_numbers( $str );
+
+$str = 'Alice bought 5 apples 2 oranges 9 bananas';
+ascending_numbers( $str );
+
+$str = 'I ran 1 mile 2 days 3 weeks 4 months';
+ascending_numbers( $str );
+
+$str = 'Bob has 10 cars 10 bikes';
+ascending_numbers( $str );
+
+$str = 'Zero is 0 one is 1 two is 2';
+ascending_numbers( $str );
+
+exit 0;
+
+sub ascending_numbers {
+ my $str = shift;
+
+ my @numbers = ($str =~ /\d+/g);
+ my $sorted = 1;
+ if (scalar @numbers > 0) {
+ my $curr = shift @numbers;
+ foreach $_ (@numbers) {
+ if ($curr >= $_) {
+ $sorted = 0;
+ last;
+ }
+ }
+ }
+
+ printf "'%s' -> %s\n", $str, $sorted
+ ? 'true'
+ : 'false';
+}