From 2a98b935432df0d406fd41563cf7d6daa5407c3f Mon Sep 17 00:00:00 2001 From: vinodk89 Date: Sun, 5 Oct 2025 00:08:05 +0530 Subject: Perl Solutions for Challenge-341 --- challenge-341/vinod-k/perl/ch-1.pl | 32 ++++++++++++++++++++++++++++++++ challenge-341/vinod-k/perl/ch-2.pl | 20 ++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 challenge-341/vinod-k/perl/ch-1.pl create mode 100644 challenge-341/vinod-k/perl/ch-2.pl 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 = ); + +# Read broken keys as space-separated input from standard input +print("Enter the broken keys as space-separated:\n"); +chomp(my $keys_line = ); +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 = ); + +print "Enter the character to reverse prefix until: "; +chomp(my $char = ); + +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"; +} -- cgit From f83d6c5f82c6c4363e7ba6dee6cdf9d1d3b0c281 Mon Sep 17 00:00:00 2001 From: vinodk89 Date: Sun, 5 Oct 2025 00:10:51 +0530 Subject: chore: remove blank lines --- challenge-341/vinod-k/perl/ch-1.pl | 2 -- 1 file changed, 2 deletions(-) diff --git a/challenge-341/vinod-k/perl/ch-1.pl b/challenge-341/vinod-k/perl/ch-1.pl index 4d182cb6eb..f4adb28be7 100644 --- a/challenge-341/vinod-k/perl/ch-1.pl +++ b/challenge-341/vinod-k/perl/ch-1.pl @@ -28,5 +28,3 @@ foreach my $word (@words) { } print "$count\n"; - - -- cgit From 39aa246c606877d74f601d39f68ac35fda3ea1ff Mon Sep 17 00:00:00 2001 From: vinodk89 Date: Sun, 5 Oct 2025 00:19:10 +0530 Subject: Python Solutions for Challenge-341 --- challenge-341/vinod-k/python/ch-1.py | 11 +++++++++++ challenge-341/vinod-k/python/ch-2.py | 14 ++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 challenge-341/vinod-k/python/ch-1.py create mode 100644 challenge-341/vinod-k/python/ch-2.py diff --git a/challenge-341/vinod-k/python/ch-1.py b/challenge-341/vinod-k/python/ch-1.py new file mode 100644 index 0000000000..2a2c08228e --- /dev/null +++ b/challenge-341/vinod-k/python/ch-1.py @@ -0,0 +1,11 @@ +sentence = input("Enter the sentence: ") +keys_input = input("Enter the broken keys separated by space: ") + +broken_keys = set(keys_input.lower().split()) + +count = 0 +for word in sentence.split(): + if all(char not in broken_keys for char in word.lower()): + count += 1 + +print(f"Number of words that can be typed: {count}") diff --git a/challenge-341/vinod-k/python/ch-2.py b/challenge-341/vinod-k/python/ch-2.py new file mode 100644 index 0000000000..c9cb239502 --- /dev/null +++ b/challenge-341/vinod-k/python/ch-2.py @@ -0,0 +1,14 @@ +input_str = input("Enter the string: ") +char = input("Enter the character to reverse prefix until: ") + +index = input_str.find(char) + +if index == -1 or index == 0: + # No change if character not found or at start + result = input_str +else: + prefix = input_str[:index+1] + rest = input_str[index+1:] + result = prefix[::-1] + rest + +print(f"Resulting string: {result}") -- cgit