乙個字串(文字)中括號匹配問題

2022-09-18 11:36:28 字數 1210 閱讀 1027

大致思想是:

(1)定義屬性,如括號以及括號的配對關係

(2)從字串(文字)中提取括號(此處以字串為例),從而得到乙個只包含括號的字串

(3)利用棧儲存開括號,遇到閉括號就與棧頂元素進行配對(此處直接將list當做棧使用),若配對就出棧

class

parenmatch(object):

"""括號匹配問題

"""def

__init__

(self, text):

self.parens = "

(){}

"

self.opposite =

", "

[":"]"

}

self.text =text

defgenerate_paren(self):

"""括號生成器,每次呼叫返回text裡的下一括號及其位置

"""i, text_len =0, len(self.text)

while

true:

while i < text_len and self.text[i] not

inself.parens:

i += 1

if i >=text_len:

return

yield

self.text[i], i

i += 1

defhandle_match(self):

"""處理括號匹配問題

"""stack =

for pr, i in

self.generate_paren():

if pr in

self.opposite:

elif stack and self.opposite[stack[-1]] ==pr:

stack.pop()

else

:

print("

unmatching is found at

", i, "

for"

, pr)

return

false

return

notstack

text = "

[(哈哈{})]

"pm =parenmatch(text)

print(pm.handle_match())

在乙個字串中尋找另外乙個字串

在乙個字串中尋找另外乙個字串 public class text foundit true break test system.out.println foundit?found it didn t find it 該段程式有點難以理解,主要就是if語句的理解,if searchme.charat ...

如何判斷乙個字串中的括號是否匹配

描述 給定乙個包含 的字串,如果判斷這個字串中的括號是否正確匹配,匹配輸出yes,否則輸出no input s a output yes 實現一 基於括號數量統計的方法 include include include using namespace std bool match char str i...

乙個字串演算法問題

已知一組數字 21,25,11,32,12,35,55,77,66 要求按以下規則進行排序 第乙個數最大,第二個數最小,第三個數是剩下中的最大的,第四個數是剩下中的最小的,依此類推,請設計乙個字元介面的程式解決之 c codes as below class program console.read...