def
followsPattern(string, pattern):
patternSet
=
set
()
for
i
in
range
(
len
(pattern)):
patternSet.add(pattern[i])
modifiedString
=
string
for
i
in
range
(
len
(string)
-
1
,
-
1
,
-
1
):
if
not
modifiedString[i]
in
patternSet:
modifiedString
=
modifiedString[:i]
+
\
modifiedString[i
+
1
:]
for
i
in
range
(
len
(modifiedString)
-
1
,
0
,
-
1
):
if
modifiedString[i]
=
=
modifiedString[i
-
1
]:
modifiedString
=
modifiedString[:i]
+
\
modifiedString[i
+
1
:]
if
len
(pattern) !
=
len
(modifiedString):
return
False
for
i
in
range
(
len
(pattern)):
if
pattern[i] !
=
modifiedString[i]:
return
False
return
True
if
__name__
=
=
"__main__"
:
string
=
"engineers rock"
pattern
=
"er"
print
(
"Expected: true, Actual:"
,
followsPattern(string, pattern))
string
=
"engineers rock"
pattern
=
"egr"
print
(
"Expected: false, Actual:"
,
followsPattern(string, pattern))
string
=
"engineers rock"
pattern
=
"gsr"
print
(
"Expected: false, Actual:"
,
followsPattern(string, pattern))
string
=
"engineers rock"
pattern
=
"eger"
print
(
"Expected: true, Actual:"
,
followsPattern(string, pattern))