例如:
/**
* 判斷括號是否有效
* @param str 輸入的字串
* @return 括號有效的話返回真
*/public static boolean bracketiseffect(string str) ")) ", "");
str = str.replace("", "");
str = str.replace("()", "");
} return str.isempty();
}
步驟梳理:每次遍歷字串以及對字串的修改操作都會產生新字串,因此對記憶體的消耗很大,效率很低,不建議使用,
但是簡單便於理解,適合剛入門的小白使用。
① 遇見左括號,將左括號入棧
② 遇到右括號
③所有字元掃瞄完畢後
/**
* 判斷括號是否有效
* @param str 輸入的字串 前提:字串僅包含三種括號字元
* @return 括號有效的話返回真
*/public static boolean bracketiseffectbystack(string str) else ') return false;
}}
return stack.isempty();
}
public static boolean bracketiseffectbymap(string str) ');
stackstack = new stack<>();
// 去除空格
str = str.replace(" ", "");
int len = str.length();
for (int i = 0; i < len; i++) else
} return stack.isempty();
}
判斷括號是否有效 c 描述
開門見山,假設我們有一大串的由 這些括號構成比如像這樣的 符號串,我們肉眼當然能看出它是非法的,那麼如何使用 來判斷是否合法呢?其實我們可以借助棧來判斷這些符號串是否非法 1.首先我們我需要建立符號的一對一對映,如下所示 1 map mp 對映括號 2.我們對字串進行遍歷 1.如果能通過對映的鍵找到...
判斷括號是否匹配
日期 2009.6.20 問題 設計乙個演算法,判斷乙個算術表示式中的括號是否配對。算術表示式儲存在帶頭結點的單迴圈鍊錶中,每個結點有兩個域 ch和 link 其中ch 域為字元型別。1 思路 根據括號的特點 進行匹配的時候,第乙個做括號最後乙個匹配,最後乙個左括號與第乙個右括號相匹配,恰好可以使用...
判斷括號是否閉合
匹配的賦值為相反數,使用棧進行判斷,如果匹配 棧頂和當前元素的值為相反數 就出棧,否則入棧,最終看棧是否為空,如果為空,則是對應的,我考慮到的情況有 類似 給定乙個只包括 的字串,判斷是否有效。必須以順序閉合,注意順序,閉合。include using namespace std include c...