diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2024-08-13 10:39:15 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-08-13 10:39:15 +0100 |
| commit | f30ff0160fc6118f3736ac5d394f54a4dbac272f (patch) | |
| tree | 2cf5d30342f1ee6db1cc339f5cf079fe8aba1958 /challenge-282 | |
| parent | 5a12366a5c33f1f8f5b3740d7ab5acd9e7a9a879 (diff) | |
| parent | 1ed5f4218d591921274087ec0feeb402e91201d4 (diff) | |
| download | perlweeklychallenge-club-f30ff0160fc6118f3736ac5d394f54a4dbac272f.tar.gz perlweeklychallenge-club-f30ff0160fc6118f3736ac5d394f54a4dbac272f.tar.bz2 perlweeklychallenge-club-f30ff0160fc6118f3736ac5d394f54a4dbac272f.zip | |
Merge pull request #10605 from deadmarshal/TWC282
TWC282
Diffstat (limited to 'challenge-282')
| -rw-r--r-- | challenge-282/deadmarshal/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-282/deadmarshal/cpp/ch-1.cpp | 28 | ||||
| -rw-r--r-- | challenge-282/deadmarshal/cpp/ch-2.cpp | 20 | ||||
| -rw-r--r-- | challenge-282/deadmarshal/java/Ch1.java | 22 | ||||
| -rw-r--r-- | challenge-282/deadmarshal/java/Ch2.java | 15 | ||||
| -rw-r--r-- | challenge-282/deadmarshal/modula-3/ch1/src/Ch1.m3 | 30 | ||||
| -rw-r--r-- | challenge-282/deadmarshal/modula-3/ch1/src/m3makefile | 5 | ||||
| -rw-r--r-- | challenge-282/deadmarshal/modula-3/ch2/src/Ch2.m3 | 22 | ||||
| -rw-r--r-- | challenge-282/deadmarshal/modula-3/ch2/src/m3makefile | 5 | ||||
| -rw-r--r-- | challenge-282/deadmarshal/perl/ch-1.pl | 12 | ||||
| -rw-r--r-- | challenge-282/deadmarshal/perl/ch-2.pl | 16 |
11 files changed, 176 insertions, 0 deletions
diff --git a/challenge-282/deadmarshal/blog.txt b/challenge-282/deadmarshal/blog.txt new file mode 100644 index 0000000000..40e0ca65c2 --- /dev/null +++ b/challenge-282/deadmarshal/blog.txt @@ -0,0 +1 @@ +https://deadmarshal.blogspot.com/2024/08/twc282.html diff --git a/challenge-282/deadmarshal/cpp/ch-1.cpp b/challenge-282/deadmarshal/cpp/ch-1.cpp new file mode 100644 index 0000000000..70b7c1737f --- /dev/null +++ b/challenge-282/deadmarshal/cpp/ch-1.cpp @@ -0,0 +1,28 @@ +#include<iostream> +#include<string> + +template<typename T> +std::string good_integer(T n) +{ + std::string str = std::to_string(n); + char prev = '\0'; + std::size_t seen{}; + for(std::size_t i = 0; i < str.size(); ++i){ + if(prev == str[i]) seen++; + else if(seen == 3) return std::string(3,prev); + else { + prev = str[i]; + seen = 1; + } + } + return "-1"; +} + +int main() +{ + std::cout << good_integer<int>(12344456) << '\n' + << good_integer<int>(1233334) << '\n' + << good_integer<int>(10020003) << '\n'; + return 0; +} + diff --git a/challenge-282/deadmarshal/cpp/ch-2.cpp b/challenge-282/deadmarshal/cpp/ch-2.cpp new file mode 100644 index 0000000000..286b8d2dfc --- /dev/null +++ b/challenge-282/deadmarshal/cpp/ch-2.cpp @@ -0,0 +1,20 @@ +#include<iostream> +#include<string> +#include<cctype> + +std::size_t changing_keys(const std::string &str) +{ + std::size_t count{}; + for(std::size_t i = 1; i < str.size(); ++i) + if(tolower(str[i]) != tolower(str[i-1])) count++; + return count; +} + +int main() +{ + std::cout << changing_keys("pPeERrLl") << '\n' + << changing_keys("rRr") << '\n' + << changing_keys("GoO") << '\n'; + return 0; +} + diff --git a/challenge-282/deadmarshal/java/Ch1.java b/challenge-282/deadmarshal/java/Ch1.java new file mode 100644 index 0000000000..6267b38b6f --- /dev/null +++ b/challenge-282/deadmarshal/java/Ch1.java @@ -0,0 +1,22 @@ +public class Ch1 { + public static void main(String[] args) { + System.out.println(good_integer(12344456)); + System.out.println(good_integer(1233334)); + System.out.println(good_integer(10020003)); + } + + private static String good_integer(int digit) { + String s = String.valueOf(digit); + char prev = Character.MIN_VALUE; + int seen = 0; + for (int i = 0; i < s.length(); ++i) { + if (prev == s.charAt(i)) seen++; + else if(seen == 3) return String.valueOf(prev).repeat(3); + else { + prev = s.charAt(i); + seen = 1; + } + } + return "-1"; + } +} diff --git a/challenge-282/deadmarshal/java/Ch2.java b/challenge-282/deadmarshal/java/Ch2.java new file mode 100644 index 0000000000..efb29739bc --- /dev/null +++ b/challenge-282/deadmarshal/java/Ch2.java @@ -0,0 +1,15 @@ +public class Ch2 { + public static void main(String[] args) { + System.out.println(changing_keys("pPeERrLl")); + System.out.println(changing_keys("rRr")); + System.out.println(changing_keys("GoO")); + } + + private static int changing_keys(String s) { + int c = 0; + for (int i = 1; i < s.length(); ++i) + if (Character.toLowerCase(s.charAt(i)) != Character.toLowerCase( + s.charAt(i - 1))) c++; + return c; + } +} diff --git a/challenge-282/deadmarshal/modula-3/ch1/src/Ch1.m3 b/challenge-282/deadmarshal/modula-3/ch1/src/Ch1.m3 new file mode 100644 index 0000000000..b2fe12a250 --- /dev/null +++ b/challenge-282/deadmarshal/modula-3/ch1/src/Ch1.m3 @@ -0,0 +1,30 @@ +MODULE Ch1 EXPORTS Main; + +IMPORT SIO,Text,Fmt; + +PROCEDURE GoodInteger(N:INTEGER):TEXT = + VAR + Str:TEXT := Fmt.Int(N); + Prev:CHAR := '\000'; + Seen:CARDINAL := 0; + BEGIN + FOR I := 0 TO Text.Length(Str)-1 DO + IF Prev = Text.GetChar(Str,I) THEN INC(Seen) + ELSIF Seen = 3 THEN + WITH C = Text.FromChar(Prev) DO + RETURN C & C & C + END; + ELSE + Prev := Text.GetChar(Str,I); + Seen := 1 + END; + END; + RETURN "-1"; + END GoodInteger; + +BEGIN + SIO.PutText(GoodInteger(12344456) & "\n"); + SIO.PutText(GoodInteger(1233334) & "\n"); + SIO.PutText(GoodInteger(10020003) & "\n") +END Ch1. + diff --git a/challenge-282/deadmarshal/modula-3/ch1/src/m3makefile b/challenge-282/deadmarshal/modula-3/ch1/src/m3makefile new file mode 100644 index 0000000000..9f66e4a51f --- /dev/null +++ b/challenge-282/deadmarshal/modula-3/ch1/src/m3makefile @@ -0,0 +1,5 @@ +import("libm3") +import("libsio") +implementation("Ch1") +program("ch1") + diff --git a/challenge-282/deadmarshal/modula-3/ch2/src/Ch2.m3 b/challenge-282/deadmarshal/modula-3/ch2/src/Ch2.m3 new file mode 100644 index 0000000000..436b87e4bb --- /dev/null +++ b/challenge-282/deadmarshal/modula-3/ch2/src/Ch2.m3 @@ -0,0 +1,22 @@ +MODULE Ch2 EXPORTS Main; + +IMPORT SIO,Text,ASCII; + +PROCEDURE ChangingKeys(READONLY Str:TEXT):CARDINAL = + VAR C:CARDINAL := 0; + BEGIN + FOR I := 1 TO Text.Length(Str)-1 DO + IF ASCII.Lower[Text.GetChar(Str,I)] # + ASCII.Lower[Text.GetChar(Str,I-1)] THEN + INC(C) + END + END; + RETURN C + END ChangingKeys; + +BEGIN + SIO.PutInt(ChangingKeys("pPeERrLl")); SIO.Nl(); + SIO.PutInt(ChangingKeys("rRr")); SIO.Nl(); + SIO.PutInt(ChangingKeys("GoO")); SIO.Nl() +END Ch2. + diff --git a/challenge-282/deadmarshal/modula-3/ch2/src/m3makefile b/challenge-282/deadmarshal/modula-3/ch2/src/m3makefile new file mode 100644 index 0000000000..798c627ef3 --- /dev/null +++ b/challenge-282/deadmarshal/modula-3/ch2/src/m3makefile @@ -0,0 +1,5 @@ +import("libm3") +import("libsio") +implementation("Ch2") +program("ch2") + diff --git a/challenge-282/deadmarshal/perl/ch-1.pl b/challenge-282/deadmarshal/perl/ch-1.pl new file mode 100644 index 0000000000..25bcf23a62 --- /dev/null +++ b/challenge-282/deadmarshal/perl/ch-1.pl @@ -0,0 +1,12 @@ +#!/usr/bin/env perl +use strict; +use warnings; + +sub good_integer { + $_[0] =~ /(\d)\1{2}(\1)?/ ? ($2 ? -1 : $1 x 3) : () +} + +print good_integer(12344456),"\n"; +print good_integer(1233334),"\n"; +print good_integer(10020003),"\n"; + diff --git a/challenge-282/deadmarshal/perl/ch-2.pl b/challenge-282/deadmarshal/perl/ch-2.pl new file mode 100644 index 0000000000..f841ec5461 --- /dev/null +++ b/challenge-282/deadmarshal/perl/ch-2.pl @@ -0,0 +1,16 @@ +#!/usr/bin/env perl +use strict; +use warnings; + +sub changing_keys{ + my ($c,@arr) = (0,split '',lc $_[0]); + foreach my $i(0..$#arr-1){ + $c++ if $arr[$i] ne $arr[$i+1] + } + $c +} + +printf "%d\n",changing_keys('pPeERrLl'); +printf "%d\n",changing_keys('rRr'); +printf "%d\n",changing_keys('GoO'); + |
