Posts

Robbie Hatley's Solutions, in Perl, for The Weekly Challenge #330 (“Clear Digits” and “Title Capital”)

Image
For those not familiar with "The Weekly Challenge", it is a weekly programming puzzle with two parts, with a new pair of tasks each Monday. You can find it here: The Weekly Challenge The Weekly Challenge for the week of 2025-07-14 through 2025-07-20 is #330 The tasks for challenge #330 are as follows: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Task 330-1: Clear Digits Submitted by: Mohammad Sajid Anwar You are given a string containing only lower case English letters and digits. Write a script to remove all digits by removing the first digit and the closest non-digit character to its left. Example #1: Input: $str = "cab12" Output: "c" Round 1: remove "1" then "b" => "ca2" Round 2: remove "2" then "a" => "c" Example #2: Input: $str = "xy99" Output: "" Round 1: remove "9" then "y" => "x9" Round 2: remove ...

Robbie Hatley's Solutions, in Perl, for The Weekly Challenge #328 (“Replace All ?” and “Good String”)

Image
For those not familiar with "The Weekly Challenge", it is a weekly programming puzzle with two parts, with a new pair of tasks each Monday. You can find it here: The Weekly Challenge The Weekly Challenge for the week of 2025-06-30 through 2025-07-06 is #328 The tasks for challenge #328 are as follows: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Task 328-1: Replace all ? Submitted by: Mohammad Sajid Anwar You are given a string containing only lower case English letters and "?". Write a script to replace all "?" in the given string so that the string doesn’t contain consecutive repeating characters. Example 1 Input: $str = "a?z" Output: "abz" There can be many strings, one of them is "abz". The choices are 'a' to 'z' but we can't use either 'a' or 'z' to replace the '?'. Example 2 Input: $str = "pe?k" Output: "peak" Example 3 Inpu...

Robbie Hatley's Solutions, in Perl, for The Weekly Challenge #329 (“Counter Integers” and “Nice String”)

Image
For those not familiar with "The Weekly Challenge", it is a weekly programming puzzle with two parts, with a new pair of tasks each Monday. You can find it here: The Weekly Challenge The Weekly Challenge for the week of 2025-07-07 through 2025-07-13 is #329 The tasks for challenge #329 are as follows: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Task 329-1: Counter Integers Submitted by: Mohammad Sajid Anwar You are given a string containing only lower case English letters and digits. Write a script to replace every non-digit character with a space and then return all the distinct integers left. Example #1: Input: $str = "the1weekly2challenge2" Output: 1, 2 2 is appeared twice, so we count it one only. Example #2: Input: $str = "go21od1lu5c7k" Output: 21, 1, 5, 7 Example #3: Input: $str = "4p3e2r1l" Output: 4, 3, 2, 1 I think I'll approach this by first using a regular expression in a s/// statement to chan...

Robbie Hatley's Solutions, in Perl, for The Weekly Challenge #327 (“Missing Integers” and “Minimum Absolute Difference”)

Image
For those not familiar with "The Weekly Challenge", it is a weekly programming puzzle with two parts, with a new pair of tasks each Monday. You can find it here: The Weekly Challenge The Weekly Challenge for the week of 2025-06-23 through 2025-06-29 is #327 The tasks for challenge #327 are as follows: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Task 327-1: Missing Integers Submitted by: Mohammad Sajid Anwar You are given an array of n integers. Write a script to find all the missing integers in the range 1..n in the given array. Example 1 Input: @ints = (1, 2, 1, 3, 2, 5) Output: (4, 6) Example 2 Input: @ints = (1, 1, 1) Output: (2, 3) Example 3 Input: @ints = (2, 2, 1) Output: (3) To solve this, I use function "none" in CPAN module "List::Util" to determine which numbers of 1..n are equal to none of the elements of the array, then I return those numbers. Robbie Hatley's Perl Solution to The Weekly Ch...

Robbie Hatley's Solutions, in Perl, for The Weekly Challenge #326 (“Day of Year” and “Decompressed List”)

Image
For those not familiar with "The Weekly Challenge", it is a weekly programming puzzle with two parts, with a new pair of tasks each Monday. You can find it here: The Weekly Challenge The Weekly Challenge for the week of 2025-06-16 through 2025-06-22 is #326 The tasks for challenge #326 are as follows: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Task 326-1: Day of the Year Submitted by: Mohammad Sajid Anwar You are given a date in the format YYYY-MM-DD. Write a script to find day number of the year that the given date represent. Example #1: Input: $date = '2025-02-02' Output: 33 Example #2: Input: $date = '2025-04-10' Output: 100 Example #3: Input: $date = '2025-09-07' Output: 250 To solve this problem, I wrote subs to extract (year, month, day) from strings, check strings for validity, determine whether a given year is a leap year, determine the number of days in a given month in a given year, and return day-of-year...

Robbie Hatley's Solutions, in Perl, for The Weekly Challenge #325 (“Consecutive Ones” and “Final Price”)

Image
For those not familiar with "The Weekly Challenge", it is a weekly programming puzzle with two parts, with a new pair of tasks each Monday. You can find it here: The Weekly Challenge The Weekly Challenge for the week of 2025-06-09 through 2025-06-15 is #325 The tasks for challenge #325 are as follows: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Task 325-1: Consecutive Ones Submitted by: Mohammad Sajid Anwar You are given a binary array containing only 0s or/and 1s. Write a script to find the maximum consecutive 1s in the given array. Example #1: Input: @binary = (0, 1, 1, 0, 1, 1, 1) Output: 3 Example #2: Input: @binary = (0, 0, 0, 0) Output: 0 Example #3: Input: @binary = (1, 0, 1, 0, 1, 1) Output: 2 To solve this problem, I'll make a sub that counts each cluster of 1s and keeps track of the max count seen. Robbie Hatley's Perl Solution to The Weekly Challenge 325-1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...

Robbie Hatley's Solutions, in Perl, for The Weekly Challenge #324 (“2D Array” and “Total XOR”)

Image
For those not familiar with "The Weekly Challenge", it is a weekly programming puzzle with two parts, with a new pair of tasks each Monday. You can find it here: The Weekly Challenge The Weekly Challenge for the week of 2025-06-02 through 2025-06-08 is #324 The tasks for challenge #324 are as follows: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Task 324-1: 2D Array Submitted by: Mohammad Sajid Anwar You are given an array of integers and two integers $r amd $c. Write a script to create two dimension array having $r rows and $c columns using the given array. Example #1: Input: @ints = (1, 2, 3, 4), $r = 2, $c = 2 Output: ([1, 2], [3, 4]) Example #2: Input: @ints = (1, 2, 3), $r = 1, $c = 3 Output: ([1, 2, 3]) Example #3: Input: @ints = (1, 2, 3, 4), $r = 4, $c = 1 Output: ([1], [2], [3], [4]) To reshape a 1D array into a 2D array using same contents, one should really use APL, in which case the entire program would only be a few characters...