From 8c709f314b9ff11568342684891c466aab170bdd Mon Sep 17 00:00:00 2001 From: Mohammad Sajid Anwar Date: Tue, 17 Sep 2024 10:23:54 +0100 Subject: - Added solutions by PokGoPun. - Added solutions by Eric Cheung. - Added solutions by Conor Hoekstra. --- challenge-287/eric-cheung/python/ch-2.py | 45 ++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100755 challenge-287/eric-cheung/python/ch-2.py (limited to 'challenge-287/eric-cheung/python/ch-2.py') diff --git a/challenge-287/eric-cheung/python/ch-2.py b/challenge-287/eric-cheung/python/ch-2.py new file mode 100755 index 0000000000..ede897bb14 --- /dev/null +++ b/challenge-287/eric-cheung/python/ch-2.py @@ -0,0 +1,45 @@ + +def IsValidDef (strFunc, bAllowDecimal): + if not bAllowDecimal and "." in strFunc: + return False + + if strFunc == ".": + return False + + if (strFunc[0] in ["+", "-"]): + strFunc = strFunc[1:] + + arrPart = strFunc.split(".") + + if len(arrPart) > 2: + return False + + for strLoop in arrPart: + if not strLoop: + continue + if not strLoop.isnumeric(): + return False + + return True + +def IsValidNum (strFunc): + arrPart = strFunc.lower().split("e") + + if len(arrPart) > 2: + return False + + for nIndx, strLoop in enumerate(arrPart): + if not IsValidDef (strLoop, nIndx == 0): + return False + + return True + +## strInput = "1" ## Example 1 +## strInput = "a" ## Example 2 +## strInput = "." ## Example 3 +## strInput = "1.2e4.2" ## Example 4 +## strInput = "-1." ## Example 5 +## strInput = "+1E-8" ## Example 6 +strInput = ".44" ## Example 7 + +print (IsValidNum(strInput)) -- cgit