aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-282/pokgopun/python/ch-1.py59
-rw-r--r--challenge-282/pokgopun/python/ch-2.py68
2 files changed, 127 insertions, 0 deletions
diff --git a/challenge-282/pokgopun/python/ch-1.py b/challenge-282/pokgopun/python/ch-1.py
new file mode 100644
index 0000000000..cdc088340f
--- /dev/null
+++ b/challenge-282/pokgopun/python/ch-1.py
@@ -0,0 +1,59 @@
+### https://theweeklychallenge.org/blog/perl-weekly-challenge-282/
+"""
+
+Task 1: Good Integer
+
+Submitted by: [57]Mohammad Sajid Anwar
+ __________________________________________________________________
+
+ You are given a positive integer, $int, having 3 or more digits.
+
+ Write a script to return the Good Integer in the given integer or -1 if
+ none found.
+
+ A good integer is exactly three consecutive matching digits.
+
+Example 1
+
+Input: $int = 12344456
+Output: "444"
+
+Example 2
+
+Input: $int = 1233334
+Output: -1
+
+Example 3
+
+Input: $int = 10020003
+Output: "000"
+
+Task 2: Changing Keys
+"""
+### solution by pokgopun@gmail.com
+
+def gi(num: int):
+ count = 0
+ digit = ""
+ for d in str(num):
+ if digit == d:
+ count += 1
+ else:
+ if count == 3:
+ return digit*3
+ digit = d
+ count = 1
+ return -1
+
+import unittest
+
+class TestGi(unittest.TestCase):
+ def test(self):
+ for inpt,otpt in {
+ 12344456: "444",
+ 1233334: -1,
+ 10020003: "000",
+ }.items():
+ self.assertEqual(gi(inpt),otpt)
+
+unittest.main()
diff --git a/challenge-282/pokgopun/python/ch-2.py b/challenge-282/pokgopun/python/ch-2.py
new file mode 100644
index 0000000000..787dc17450
--- /dev/null
+++ b/challenge-282/pokgopun/python/ch-2.py
@@ -0,0 +1,68 @@
+### https://theweeklychallenge.org/blog/perl-weekly-challenge-282/
+"""
+
+Task 2: Changing Keys
+
+Submitted by: [58]Mohammad Sajid Anwar
+ __________________________________________________________________
+
+ You are given an alphabetic string, $str, as typed by user.
+
+ Write a script to find the number of times user had to change the key
+ to type the given string. Changing key is defined as using a key
+ different from the last used key. The shift and caps lock keys won’t be
+ counted.
+
+Example 1
+
+Input: $str = 'pPeERrLl'
+Ouput: 3
+
+p -> P : 0 key change
+P -> e : 1 key change
+e -> E : 0 key change
+E -> R : 1 key change
+R -> r : 0 key change
+r -> L : 1 key change
+L -> l : 0 key change
+
+Example 2
+
+Input: $str = 'rRr'
+Ouput: 0
+
+Example 3
+
+Input: $str = 'GoO'
+Ouput: 1
+ __________________________________________________________________
+
+ Last date to submit the solution 23:59 (UK Time) Sunday 18th August
+ 2024.
+ __________________________________________________________________
+
+SO WHAT DO YOU THINK ?
+"""
+### solution by pokgopun@gmail.com
+
+def ck(string: str):
+ string = string.lower()
+ count = 0
+ for i in range(len(string)-1):
+ if string[i]!=string[i+1]:
+ count += 1
+ return count
+
+import unittest
+
+class TestCk(unittest.TestCase):
+ def test(self):
+ for inpt, otpt in {
+ 'pPeERrLl': 3,
+ 'rRr': 0,
+ 'GoO': 1,
+ }.items():
+ self.assertEqual(ck(inpt),otpt)
+
+unittest.main()
+