aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-341/vinod-k/perl/ch-1.pl32
-rw-r--r--challenge-341/vinod-k/perl/ch-2.pl20
2 files changed, 52 insertions, 0 deletions
diff --git a/challenge-341/vinod-k/perl/ch-1.pl b/challenge-341/vinod-k/perl/ch-1.pl
new file mode 100644
index 0000000000..4d182cb6eb
--- /dev/null
+++ b/challenge-341/vinod-k/perl/ch-1.pl
@@ -0,0 +1,32 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+# Read sentence from standard input
+print("Enter the sentence:\n");
+chomp(my $str = <STDIN>);
+
+# Read broken keys as space-separated input from standard input
+print("Enter the broken keys as space-separated:\n");
+chomp(my $keys_line = <STDIN>);
+my @keys = split /\s+/, $keys_line;
+
+my %broken = map { lc($_) => 1 } @keys;
+my @words = split /\s+/, $str;
+
+my $count = 0;
+foreach my $word (@words) {
+ my $can_type = 1;
+ foreach my $char (split //, lc($word)) {
+ if ($broken{$char}) {
+ $can_type = 0;
+ last;
+ }
+ }
+ $count++ if $can_type;
+}
+
+print "$count\n";
+
+
diff --git a/challenge-341/vinod-k/perl/ch-2.pl b/challenge-341/vinod-k/perl/ch-2.pl
new file mode 100644
index 0000000000..234a9c0709
--- /dev/null
+++ b/challenge-341/vinod-k/perl/ch-2.pl
@@ -0,0 +1,20 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+print "Enter the string: ";
+chomp(my $str = <STDIN>);
+
+print "Enter the character to reverse prefix until: ";
+chomp(my $char = <STDIN>);
+
+my $index = index($str, $char);
+
+if ($index == -1 || $index == 0) {
+ print "$str\n";
+} else {
+ my $prefix = substr($str, 0, $index + 1);
+ my $reversed = reverse $prefix;
+ print $reversed . substr($str, $index + 1) . "\n";
+}