aboutsummaryrefslogtreecommitdiff
path: root/challenge-190/eric-cheung/python
diff options
context:
space:
mode:
authorDave Jacoby <jacoby.david@gmail.com>2022-11-14 09:29:47 -0500
committerDave Jacoby <jacoby.david@gmail.com>2022-11-14 09:29:47 -0500
commitb43c7c0901bac835315fe78c39db7528e9a9a58d (patch)
treedbe607f12c2ea0a4413a552332c40111b2fbbc80 /challenge-190/eric-cheung/python
parent2e12c850a19098123c635ccacfa30b69f6ba66dc (diff)
parent377a415bb53d1ed0b16b70d190bb444241216036 (diff)
downloadperlweeklychallenge-club-b43c7c0901bac835315fe78c39db7528e9a9a58d.tar.gz
perlweeklychallenge-club-b43c7c0901bac835315fe78c39db7528e9a9a58d.tar.bz2
perlweeklychallenge-club-b43c7c0901bac835315fe78c39db7528e9a9a58d.zip
Merge branch 'master' of https://github.com/manwar/perlweeklychallenge-club
Diffstat (limited to 'challenge-190/eric-cheung/python')
-rwxr-xr-xchallenge-190/eric-cheung/python/ch-1.py15
-rwxr-xr-xchallenge-190/eric-cheung/python/ch-2.py54
2 files changed, 69 insertions, 0 deletions
diff --git a/challenge-190/eric-cheung/python/ch-1.py b/challenge-190/eric-cheung/python/ch-1.py
new file mode 100755
index 0000000000..0f32352a2d
--- /dev/null
+++ b/challenge-190/eric-cheung/python/ch-1.py
@@ -0,0 +1,15 @@
+
+def IsApproCapital (strFuncInput):
+
+ if strFuncInput.islower() or strFuncInput.isupper() or strFuncInput[0].isupper() and strFuncInput[1:].islower():
+ return True
+
+ return False
+
+
+## strInput = "Perl" ## Example 1
+## strInput = "TPF" ## Example 2
+## strInput = "PyThon" ## Example 3
+strInput = "raku" ## Example 4
+
+print ("1" if IsApproCapital(strInput) else "0")
diff --git a/challenge-190/eric-cheung/python/ch-2.py b/challenge-190/eric-cheung/python/ch-2.py
new file mode 100755
index 0000000000..cc9f934746
--- /dev/null
+++ b/challenge-190/eric-cheung/python/ch-2.py
@@ -0,0 +1,54 @@
+
+## Credit:
+## https://github.com/manwar/perlweeklychallenge-club/blob/master/challenge-190/roger-bell-west/python/ch-2.py
+
+from collections import deque
+
+def GetMap(strFuncInput):
+ return chr(int(strFuncInput) + 64)
+
+def GetStack(stackLeft, stackLeftTail, nLastPos):
+
+ stackCopy = stackLeft.copy()
+ stackCopy.append(stackLeftTail[0:nLastPos])
+ stackCopy.append(stackLeftTail[nLastPos:])
+
+ return stackCopy
+
+def decodedList(strFuncInput):
+ stackTemp = deque()
+ stackTemp.append([strFuncInput])
+ arrTempOutput = set()
+
+ while len(stackTemp) > 0:
+
+ stackTempPopLeft = stackTemp.popleft()
+ stackTempPopLeftTail = stackTempPopLeft.pop()
+
+ if len(stackTempPopLeftTail) == 0:
+ arrTempOutput.add(tuple(stackTempPopLeft))
+ continue
+
+ if stackTempPopLeftTail[0] != "0":
+ stackTemp.append(GetStack(stackTempPopLeft, stackTempPopLeftTail, 1))
+
+ if len(stackTempPopLeftTail) >= 2:
+ nCheckVal = int(stackTempPopLeftTail[0:2])
+ if nCheckVal >= 1 and nCheckVal <= 26:
+ stackTemp.append(GetStack(stackTempPopLeft, stackTempPopLeftTail, 2))
+
+ arrOuput = []
+
+ for elemLoop in arrTempOutput:
+ arrOuput.append("".join(GetMap(charLoop) for charLoop in elemLoop))
+
+ arrOuput.sort()
+
+ return arrOuput
+
+
+## strInput = "11" ## Example 1
+## strInput = "1115" ## Example 2
+strInput = "127" ## Example 3
+
+print (decodedList(strInput))