日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

00004-括号匹配问题-牛客网-要考虑各种情况

發(fā)布時間:2024/7/19 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 00004-括号匹配问题-牛客网-要考虑各种情况 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

括號匹配問題

鏈接:https://ac.nowcoder.com/acm/contest/3530/E
來源:??途W

眾所周知,佳爺是集訓隊最強,他經常喜歡鄙視集訓隊最菜的PC,這天他又來了,他丟給PC一道題目:

給你一個字符串,該字符串只包含符號 ‘(’ 和 ‘)’, ,我們稱那些左右括號可以一一對應的括號字符串為完美字符串,

比如"()()()", “((()))”, “((()))()()”, 都是完美字符串

而"((())", “()(”, “((()))()(” 不是完美字符串。

這么難的題目,PC當然是不會寫的,但他又不想被佳爺鄙視,所以他找到了你,聰明的ACMer啊,請你幫PC解出這題把

輸入描述:

第一行一個整數(shù)n,代表字符串的長度 n, 1 <= n <= 1e5

第二行一串字符串s,只包含字符 ‘(’ , ‘)’。

輸出描述:

如果該字符串是完美字符串,就輸出YES,。否則輸出NO

示例1
輸入

4

(())

輸出

YES

import java.util.Scanner; import java.util.Stack;public class Main {//https://ac.nowcoder.com/acm/contest/3530/E//判斷給定的字符串是不是完美括號public static void main(String[] args) {Scanner sc=new Scanner(System.in);int n=sc.nextInt();String input=sc.next();//將字符串轉換為字符數(shù)組char []chars=input.toCharArray();//用棧來進行匹配Stack<String> stack=new Stack<>();//i用來計數(shù),如果for循環(huán)結束i的值和數(shù)組的長度相同,則YES,反之NOint i;for ( i=0;i<chars.length;i++){if (chars[i]=='(') {stack.push(chars[i] + "");}else{if (stack.empty()){break; }else{stack.pop();}}}if (i==chars.length&&stack.empty()){System.out.println("YES");}else {System.out.println("NO");}} }

總結:
1.應用棧進行匹配是最直接的,如果位左括號(,就入棧,如果為右括號),就出棧,需要注意的是在右括號出棧的時候需要判斷棧是否為空,比如輸入序列為:)(),此時就需要注意了。
2.最后用if判斷輸出YES還是NO時候,需要判斷計數(shù)變量i的值是否等于字符數(shù)組的長度,還要判斷棧是否為空,因為可能存 ()( 這種情況,也是需要注意的。

總結

以上是生活随笔為你收集整理的00004-括号匹配问题-牛客网-要考虑各种情况的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。