括號配對問題(C)

描述
現在,有一行括號序列,請你檢查這行括號是否配對。
輸入
第一行輸入一個數N(0<N<=100),表示有N組測試數據。后面的N行輸入多組輸入數據,每組輸入數據都是一個字符串S(S的長度小于10000,且S不是空串),測試數據組數少于5組。數據保證S中只含有"[", “]”, “(”, “)” 四種字符
輸出
每組輸入數據的輸出占一行,如果該字符串中所含的括號是配對的,則輸出Yes,如果不配對則輸出No
樣例輸入
3
[(])
(])
([])
樣例輸出
No
No
Yes

思路分析:
①,
定義一個char類型的數字s【65535】負責存儲數據;還有一個char類型的字符ch,負責一個一個接收數據;int類型的n,負責控制次數; int類型的top負責查看s數組的下表。
②,
每輸入一個ch,進行判斷,若是‘(’或是‘【’,則top指向的s數組進行top++,將ch存入s里面;
若ch為‘)’并且s下標top>0(說明s里面已經有元素了),并且s【top-1】==‘(’,則top–;

同理,若ch為‘】’并且s下標top>0(說明s里面已經有元素了),并且s【top-1】==‘【’,則top–;
③,
最后判斷top的值是否為0,若是0,則s里面沒有剩余元素,即全部匹配;反之則沒有完全匹配。

####代碼如下:

#include<stdio.h>
#include<string.h>int main()
{char s[65535];int n;scanf("%d",&n);getchar();while(n--){int top=0;char a;while((a=getchar())!='\n'){if(a==')' && top>0 && s[top-1]=='(')top--;else if(a==']' && top>0 && s[top-1]=='[')top--;else	s[top++]=a;}if(top==0)	printf("Yes\n");else	printf("No\n");}return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/379736.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/379736.shtml
英文地址,請注明出處:http://en.pswp.cn/news/379736.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

劇情介紹:“阿甘正傳”

阿甘是個智商只有75的低能兒。在學校里為了躲避別的孩子的欺侮&#xff0c;聽從一個朋友珍妮的話而開始“跑”。他跑著躲避別人的捉弄。在中學時&#xff0c;他為了躲避別人而跑進了一所學校的橄欖球場&#xff0c;就這樣跑進了大學。阿甘被破格錄取&#xff0c;并成了橄欖球巨…

java 方法 示例_Java集合syncedList()方法與示例

java 方法 示例集合類syncList()方法 (Collections Class synchronizedList() method) synchronizedList() method is available in java.util package. syncList()方法在java.util包中可用。 synchronizedList() method is used to return the synchronized view of the given…

FreeRTOS信號量---二值信號量

信號量可以用來進行資源管理和任務同步&#xff0c;FreeRTOS中信號量又分為二值信號量、計算型信號量、互斥信號量和遞歸互斥信號量。 0x01 二值信號量 二值信號量其實就是一個只有一個隊列項的隊列&#xff0c;這個特殊的隊列要么是滿的&#xff0c;要么是空的&#xff0c;任…

Linux 上 rpm包管理工具的基本使用

查詢是否安裝某個包&#xff1a;rpm -q 包名查詢所有已安裝的包&#xff1a;rpm -q a查詢未安裝包的文件信息&#xff1a;rpm -qilp 未安裝的包安裝包&#xff1a;rpm -i 包測試安裝包&#xff1a;rpm -i test 包刪除包&#xff1a;rpm -e 包名測試刪除包&#xff1a;rpm -e te…

ios 內存使用陷阱

在iphone開發過程中&#xff0c;代碼中的內存泄露我們很容易用內存檢測工具leaks 檢測出來&#xff0c;并一一改之&#xff0c;但有些是因為ios 的缺陷和用法上的錯誤&#xff0c;leaks 檢測工具并不能檢測出來&#xff0c;你只會看到大量的內存被使用&#xff0c;最后收到didR…

FreeRTOS軟件定時器

軟件定時器允許設置一段時間&#xff0c;當設置的時間達到后就執行指定的功能函數&#xff0c;被軟件定時器調用的功能函數叫做定時器的回調函數。軟件定時器的回調函數是在定時器服務任務中執行的&#xff0c;所以一定不能在回調函數中調用任何阻塞任務的API函數&#xff0c;比…

Java類class isAssignableFrom()方法及示例

類class isAssignableFrom()方法 (Class class isAssignableFrom() method) isAssignableFrom() method is available in java.lang package. isAssignableFrom()方法在java.lang包中可用。 isAssignableFrom() method is used to check whether the class or an interface den…

關于 列表實例

wss3.0工具中有個列表實例項目。此項目的作用是在自定義網站或自定義字段時使用默認值。也就是定義其默認的數據。 格式詳見微軟msdn&#xff1a;http://msdn.microsoft.com/zh-cn/library/ms478860.aspx轉載于:https://www.cnblogs.com/heavencloud/archive/2009/03/20/141793…

WP7之Application Bar控件

Microsoft.Phone.Shell命名空間中定義了ApplicationBar及其相關類&#xff08;ApplicationBarIconButton和ApplicationBarMenuItem&#xff09;&#xff0c;這些類派生自Object,并完全獨立于常規Silverlight編程中的DependencyObject,UIElement和FrameworkElement類層次結構。A…

TomCat使用以及端口號被占用的處理方法

一.HTTP協議 什么是HTTP協議 HTTP協議&#xff08;HyperText Transfer Protocol&#xff0c;超文本傳輸協議&#xff09;是因特網上應用最為廣泛的一種網絡傳輸協議&#xff0c;所有的WWW文件都必須遵守這個標準。 HTTP請求 HTTP響應 2.如何處理端口被占用 方法一&#xff…

FreeRTOS事件標志組

使用信號量來同步的話&#xff0c;任務只能與單個事務或任務進行同步&#xff0c;有時候某個任務可能會需要與多個事件或任務進行同步&#xff0c;此時信號量就無能為力了&#xff0c;FreeRTOS為此提供了一個可選的解決方法&#xff0c;那就是事件標志組。 0x01 事件標志組 事…

FusionCharts等產品簡介

以前做柱狀圖、餅形圖等圖表都是根據數據繪制出來的靜態圖&#xff0c;偶然看到別人的一套系統&#xff0c;居然可以讓柱狀圖的柱子動畫般的逐個出現&#xff0c;效果還是很不錯的。不要跟我抬杠說不就是展現數據嘛&#xff0c;靜態圖表有什么不好&#xff0c;要知道用戶一般可…

c#foreach循環_C#| 使用foreach循環打印整數數組

c#foreach循環Given an integer array and we have to print its elements using "foreach loop" in C#. 給定一個整數數組&#xff0c;我們必須在C&#xff03;中使用“ foreach循環”打印其元素 。 Syntax for foreach loop: foreach循環的語法&#xff1a; fore…

Eclipse和Tomcat綁定并且將上傳資源到Tomcat上

步驟如下&#xff1a; 創建一個Dynamic Web Project&#xff08;圖一&#xff09; Target runtime 選擇Apache Tomcat v7.0版本&#xff08;圖二&#xff09; 切記要選擇 v7.0 和2.5 &#xff08;若沒有圖二選項見圖三&#xff09; 然后&#xff0c;點擊window --> Prefer…

淺析.NET平臺編程語言的未來走向

在去年的PDC2008召開期間&#xff0c;微軟逐步公開了圍繞.NET和編程語言的很多想法&#xff0c;據此我們可以饒有興趣地對.NET的未來預測一番。 .NET平臺以運行在通用語言運行時(Common Language Runtime&#xff0c;CLR)上的C#和VB.NET作為開端。CLR是通用語言架構(Common Lan…

FreeRTOS任務通知

從v8.2.0版本開始&#xff0c;FreeRTOS新增了任務通知這個功能&#xff0c;可以使用任務通知來代替信號量、消息隊列、事件標志組等這些東西&#xff0c;使用任務通知的話效率會更高。 任務通知在FreeRTOS是一個可選的選項&#xff0c;要使用任務通知的話就需要將宏configUSE_T…

kinect在openni下也能玩摳出人物換背景

之前想了個很拉風的名字《用kinect玩穿越》&#xff0c;但是現在功能還不是很完善&#xff0c;細節處理也不是很好&#xff0c;臉皮沒有足夠的厚&#xff0c;所以呢還是叫換背景吧。 這里面包含兩個技術要點&#xff1a; 一、摳出活動人物 在微軟的SDK里深度圖像的前3位即0-2位…

物聯網基礎知識_聯網| 基礎知識能力問答 套裝1

物聯網基礎知識1) There are the following statements that are given below, which of them are correct about the computer network? A computer network is an interconnection between multiple devices to share hardware resources and information.A computer networ…

Emit學習-基礎篇-基本概念介紹

之前的Hello World例子應該已經讓我們對Emit有了一個模糊的了解&#xff0c;那么Emit到底是什么樣一個東西&#xff0c;他又能實現些什么功能呢&#xff1f;昨天查了點資料&#xff0c;大致總結了下&#xff0c;由于才開始學習肯定有不完善的地方&#xff0c;希望大家能夠批評指…

The FreeRTOS Distribution(介紹、移植、類型定義)

1 Understand the FreeRTOS Distribution 1.1 Definition &#xff1a;FreeRTOS Port FreeRTOS目前可以在20種不同的編譯器構建&#xff0c;并且可以在30多種不同的處理器架構上運行&#xff0c;每個受支持的編譯器和處理器組合被認為是一個單獨的FreeRTOS Port。 1.2 Build…