判斷模式是否匹配

2021-10-08 07:27:02 字數 1162 閱讀 5391

有兩個字串,即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...