1. 程式人生 > >【2018校招筆試-京東=java開發】題目1括號匹配方案

【2018校招筆試-京東=java開發】題目1括號匹配方案

題目:

括號匹配方案

思路:

將字串壓棧,如果是單獨一個“(”,那麼繼續壓,如果碰到了“)”,說明“(”已經輸入完畢了,此時棧的大小就是左括號的數量,此時每輸入一個右括號,就出一次棧,記錄一次站內字元數,然後連乘,直到全部出棧。

程式碼:

package xiaozhao2018.jingdong;

import java.util.*;
public class Main1 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextLine()) {
            String str = sc.nextLine();
            char
[] s = str.toCharArray(); Stack<Character> stack = new Stack<>(); int num = 1; for(int i = s.length - 1; i >= 0; i--) { if(s[i] == ')'){ stack.push(s[i]); } else { num *= stack.size(); stack.pop(); } } System.out
.println(num); } } }