常見演算法題 判斷表示式括號是否匹配

2021-07-03 03:15:05 字數 863 閱讀 6298

題目:設計乙個演算法,判斷使用者輸入的表示式中括號是否匹配,表示式中可能含有圓括號、中括號和大括號。

思路:建立乙個順序棧,當表示式中有左括號時將其入棧,當出現右括號時,將棧頂元素出棧,檢查與當前右括號是否匹配。最後如果棧為空則表示該表示式中的括號是匹配的。

**:

#include

#include

using

namespace

std;

#define maxsize 20

//字串棧

class stack

;stack::stack()

stack::~stack()

bool stack::isempty()

bool stack::push(char e)

bool stack::pop(char& e)

bool ismatch(char str,int n)

if(str[i] == ']')

if(str[i] == '}')

}i++;

}if(st.isempty()) return

true;

else

return

false; //遍歷字串後棧不為空說明有不匹配字元

}void main()

測試結果1:

測試資料2:[[[[[)]]]]]

測試結果2:

判斷表示式的括號是否對稱

public class kuohao public static boolean iscorrect string reg if bytes i if left right return false char 與 ascii 轉換,只要強制型別轉換就行 public static int chan...

判斷算術表示式中的括號是否匹配

問題描述 假設乙個算術表示式中包含圓括號 方括號和花括號3種型別的括號,編寫乙個演算法來判斷表示式中的括號是否匹配,以字元 作為算術表示式的結束符。解決問題思想 遇見左括號就進棧,遇見右括號就出棧。當括號匹配時上一次進棧和本次出棧的括號肯定配對,所以不需要迴圈依次出棧判斷括號是否配對 此處之前沒有想...

資料結構演算法 判斷表示式中的括號是否匹配

元旦三天假,閒著沒事幹,就想著複習一下學資料結構時的那些演算法吧。本來是想用c語言來寫的,無奈啊,三四年沒用c了,基本上忘光光,還是用c 來寫吧,而且.net基類庫中已經有了棧 佇列等的實現,直接拿來用用吧。第乙個演算法是用來判斷表示式中的括號 僅限小括號 是否匹配的。其實哥很想找個妹子出去約會啊,...