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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

java中统计括号配对_括号配对问题(C语言或JAVA语言代码)

發布時間:2023/12/4 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中统计括号配对_括号配对问题(C语言或JAVA语言代码) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

描述

現在,有一行括號序列,請你檢查這行括號是否配對。

輸入

第一行輸入一個數N(0

"]", "(", ")" 四種字符

輸出

每組輸入數據的輸出占一行,如果該字符串中所含的括號是配對的,則輸出Yes,如果不配對則輸出No

樣例輸入

3

[(])

(])

([[]()])

樣例輸出

No

No

Yes

解題思路:

由于用棧來實現要復雜得多,這里可以訪問“棧”內元素,“棧”頂是右括號而非用棧表示的左括號,括號序列中的字符逐個入“棧”,發現緊挨著“棧頂”的一個元素為']'或')'時,迅速匹配“已配對括號都出棧后”再往前數一個位置的'['或'('。

注意事項:

串長小于10000,注意邊界,當所有的括號都匹配以后,“棧頂指針”指向其第一個位置。

參考代碼:

C語言描述:#include?

int?main(){

char?s[10001],x[10001];

int?t,?a,?c;

scanf("%d",?&a);

while(a--)?{

scanf("%s",s);

t?=?c?=?0;

while?(?c?

if(?t?>?1?&&?(x[t-1]?==?']'?&&?x[t-2]?==?'['?||?x[t-1]?==?')'?&&?x[t-2]?==?'(')?)

t?-=?2;

if(t?==?1)?printf("Yes\n");

else?printf("No\n");

}

return?0;

}

JAVA語言描述:import?java.util.*;

class?Main?{

public?static?void?main(String[]?args)?throws?Exception?{

Scanner?cin?=?new?Scanner(System.in);

int?a?=?cin.nextInt();

while?(0?

String?s;

List?vec?=?new?ArrayList();

s?=?cin.next();

vec.add("?");

for?(int?i?=?0;?i?

vec.add(""?+?s.charAt(i));

int?b?=?vec.size();

if?(vec.get(b-1).charAt(0)-1?==?vec.get(b-2).charAt(0)?||

vec.get(b-1).charAt(0)-2?==?vec.get(b-2).charAt(0)){

vec.remove(b-1);

vec.remove(b-2);

}

}

if?(1?==?vec.size())?System.out.println("Yes");

else?System.out.println("No");

}

}

}

總結

以上是生活随笔為你收集整理的java中统计括号配对_括号配对问题(C语言或JAVA语言代码)的全部內容,希望文章能夠幫你解決所遇到的問題。

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