aboutsummaryrefslogtreecommitdiff
path: root/challenge-099/paulo-custodio/python/ch-1.py
diff options
context:
space:
mode:
author冯昶 <seaker@qq.com>2021-03-15 18:13:51 +0800
committer冯昶 <seaker@qq.com>2021-03-15 18:13:51 +0800
commit8b6be37fe4dac8b4c6489a95e55514b76b298d15 (patch)
treeae36c8ec2c71f606c0e36adaa19dba366a68a0b4 /challenge-099/paulo-custodio/python/ch-1.py
parent865acfd056fb6f409ec6b1a81d60b931cbcb69fe (diff)
parentc9aec2da6bcb04b488183f09ca94bee488557aff (diff)
downloadperlweeklychallenge-club-8b6be37fe4dac8b4c6489a95e55514b76b298d15.tar.gz
perlweeklychallenge-club-8b6be37fe4dac8b4c6489a95e55514b76b298d15.tar.bz2
perlweeklychallenge-club-8b6be37fe4dac8b4c6489a95e55514b76b298d15.zip
Merge branch 'master' of github.com:seaker/perlweeklychallenge-club
Diffstat (limited to 'challenge-099/paulo-custodio/python/ch-1.py')
-rw-r--r--challenge-099/paulo-custodio/python/ch-1.py55
1 files changed, 55 insertions, 0 deletions
diff --git a/challenge-099/paulo-custodio/python/ch-1.py b/challenge-099/paulo-custodio/python/ch-1.py
new file mode 100644
index 0000000000..4516a3254f
--- /dev/null
+++ b/challenge-099/paulo-custodio/python/ch-1.py
@@ -0,0 +1,55 @@
+#!/usr/bin/env python
+
+# Challenge 099
+#
+# TASK #1 > Pattern Match
+# Submitted by: Mohammad S Anwar
+# You are given a string $S and a pattern $P.
+#
+# Write a script to check if given pattern validate the entire string.
+# Print 1 if pass otherwise 0.
+#
+# The patterns can also have the following characters:
+#
+# ? - Match any single character.
+# * - Match any sequence of characters.
+# Example 1:
+# Input: $S = "abcde" $P = "a*e"
+# Output: 1
+# Example 2:
+# Input: $S = "abcde" $P = "a*d"
+# Output: 0
+# Example 3:
+# Input: $S = "abcde" $P = "?b*d"
+# Output: 0
+# Example 4:
+# Input: $S = "abcde" $P = "a*c?e"
+# Output: 1
+
+import sys
+
+def match(s, p):
+ while True:
+ if s=="" and p=="":
+ return True
+ elif s=="" or p=="":
+ return False
+ elif p[0]=="?":
+ s=s[1:]
+ p=p[1:]
+ elif p[0]=="*":
+ p=p[1:]
+ for i in range(0, len(s)):
+ if match(s[i:], p):
+ return True
+ return False
+ elif s[0]!=p[0]:
+ return False
+ else:
+ s=s[1:]
+ p=p[1:]
+
+if match(sys.argv[1], sys.argv[2]):
+ print(1)
+else:
+ print(0)