国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

棧的應(yīng)用(一)

2019-11-11 03:38:22
字體:
供稿:網(wǎng)友

棧的應(yīng)用二  括號(hào)匹配的校驗(yàn)算法

算法思路

1.循環(huán)遍歷字符串,讀取每一個(gè)字符串,如果是左括號(hào),則入棧

2.如果是右括號(hào),則

   (1)如果棧空,說明右括號(hào)多余,false

   (2)如果棧非空,當(dāng)前指針指向的字符和棧頂比較,如果不同,false;如果匹配,則出棧一次

   (3)如果循環(huán)結(jié)束后棧空,則返回true,反之返回false

import java.util.LinkedList;
public class BracketMatch {	    public static void main(String[] args) {	    	System.out.PRintln(match("{[]([])}"));	    }	    public static boolean match(String inputStr) {	        int len = inputStr.length();	        LinkedList<Character> stack = new LinkedList<Character>();	        // 循環(huán)遍歷字符串	        for (int i = 0; i < len; i++) {	            // 如果是左括號(hào)則入棧	            if (isLeftBracket(inputStr.charAt(i))) {	                stack.push(inputStr.charAt(i));	                // 如果是右括號(hào)	            } else if (isRightBracket(inputStr.charAt(i))) {	                // 棧空,則右括號(hào)沒有匹配的左括號(hào),則返回false	                if (stack.isEmpty()) {	                    return false;	                    // 棧不空,則和棧頂比較	                } else {	                	if("{".equals(stack.peek().toString())&&"}".equals(String.valueOf(inputStr.charAt(i)))){	                			stack.pop();	                			continue;	                	}	                	if(stack.peek().toString().equals("[")&&"]".equals(String.valueOf(inputStr.charAt(i)))){	                			stack.pop();	                			continue;	                	}	                	if(stack.peek().toString().equals("(")&&")".equals(String.valueOf(inputStr.charAt(i)))){	                			stack.pop();	                			continue;	                	}	                }	            }	        }	        // 循環(huán)結(jié)束后,棧空表示匹配完了,不空表示多余左括號(hào)	        if (stack.isEmpty()) {	            return true;	        } else {	            return false;	        }	    }	    /**	     * 判斷字符是不是左括號(hào)	     * 	     * @param dc	     * @return	     */	    public static boolean isLeftBracket(char ch) {	        if (ch == '(' || ch == '[' || ch == '{') {	            return true;	        } else {	            return false;	        }	    }	    /**	     * 判斷字符是不是右括號(hào)	     * 	     * @param dc	     * @return	     */	    public static boolean isRightBracket(char ch) {	        if (ch == ')' || ch == ']' || ch == '}') {	            return true;	        } else {	            return false;	        }	    }}


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 通河县| 逊克县| 莫力| 霍邱县| 沭阳县| 兰州市| 金寨县| 奇台县| 苍南县| 柘荣县| 濮阳市| 客服| 岳普湖县| 昆山市| 南部县| 牟定县| 台前县| 黄冈市| 青海省| 庄浪县| 阿克陶县| 峨眉山市| 孝感市| 汉沽区| 新蔡县| 华阴市| 余江县| 汶上县| 两当县| 绥棱县| 翁牛特旗| 留坝县| 阳原县| 黔西| 错那县| 武胜县| 美姑县| 乐至县| 玉环县| 敦化市| 鄂尔多斯市|