有兩個字串,即pattern和value。 pattern字串由字母"a"和"b"組成,用於描述字串中的模式。例如,字串"catcatgocatgo"匹配模式"aabab"(其中"cat"是"a",「go"是"b」),該字串也匹配像"a"、"ab"和"b"這樣的模式。但需注意"a"和"b"不能同時表示相同的字串。編寫乙個方法判斷value字串是否匹配pattern字串。
import re
defpatternmatching
( pattern, value):if
not pattern:
return
not value
elif
len(pattern)==1
:return
true
rega , regb =
('\\1'
,'\\2'
)if pattern[0]
=='a'
else
('\\2'
,'\\1'
) p = pattern.replace(
'a',
'(\\w*)',1
).replace(
'b',
'(\\w*)',1
).replace(
'a',rega)
.replace(
'b',regb)
p ='^'+ p +
'$' m = re.match(p,value)
if(m)
:return
bool
(m and
len(m.groups())
==1or m.groups()[
0]!= m.groups()[
1])else
:return
false
if __name__ ==
'__main__'
: pattern =
'aab'
value =
'dogdogcat'
if(patternmatching(pattern,value)):
print
('y'
)else
:print
('n'
)
判斷 是否匹配
寫乙個函式,檢查乙個表示式中的括號是否合法,括號包括 思路 用棧,每次找到關鍵字是括號的時候,檢查棧頂元素是否為匹配的括號。如果是匹配的,棧頂元素出棧,否則新的括號入棧。檢查所有的括號元素後,如果此時棧為空,則表示式正確,否則表示式錯誤。include include includeusing na...
判斷括號是否匹配
日期 2009.6.20 問題 設計乙個演算法,判斷乙個算術表示式中的括號是否配對。算術表示式儲存在帶頭結點的單迴圈鍊錶中,每個結點有兩個域 ch和 link 其中ch 域為字元型別。1 思路 根據括號的特點 進行匹配的時候,第乙個做括號最後乙個匹配,最後乙個左括號與第乙個右括號相匹配,恰好可以使用...
判斷字元是否匹配
c語言程式設計 現代方法 p170 第一題 當讀入左括號或者左花括號時,把它們像字元一樣壓入棧中,當讀入右圓括號或右花括號時,把棧頂的項彈出,並且檢查彈出的項是否為匹配的圓括號或者花括號。define crt secure no warnings include include include de...