-
Notifications
You must be signed in to change notification settings - Fork 1
/
Elite Day-22 Program-3.txt
73 lines (57 loc) · 1.43 KB
/
Elite Day-22 Program-3.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
Given two strings S1 and S2, find if S2 can match S1 or not.
A match that is both one-to-one (an injection) and onto (a surjection),
i.e. a function which relates each letter in string S1 to a separate and
distinct non-empty substring in S2, where each non-empty substring in S2
also has a corresponding letter in S1.
Return true,if S2 can match S1.
Otherwise false.
Input Format:
-------------
Line-1 -> Two strings S1 and S2
Output Format:
--------------
Print a boolean value as result.
Sample Input-1:
---------------
abab kmitngitkmitngit
Sample Output-1:
----------------
true
Sample Input-2:
---------------
aaaa kmjckmjckmjckmjc
Sample Output-2:
----------------
true
Sample Input-3:
---------------
mmnn pqrxyzpqrxyz
Sample Output-3:
----------------
false
75/100
def patternMatch(pattern,string):
n=int(len(string)/len(pattern))
dic={}
start=0
end=start+n
for i in pattern:
dic[i]=string[start:end]
# print(dic)
start=end
end=start+n
keys=[]
values=[]
for i in dic.keys():
if i not in keys:
keys.append(i)
for i in dic.values():
if i not in values:
values.append(i)
if len(keys)==len(values):
return(True)
else:
return(False)
if __name__=="__main__":
pattern,string=map(str,input().split())
print(patternMatch(pattern,string))