程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 表達式括號匹配(stack),表達式stack

表達式括號匹配(stack),表達式stack

編輯:關於C語言

表達式括號匹配(stack),表達式stack


題目描述

    假設一個表達式由英文字母(小寫)、運算符(+、-、*、/)和左右小(圓)括號構成,以“@”作為表達式的結束符。請編寫一個程序檢查表達式中的左右括號是否匹配,若匹配,則返回“YES”;否則返回“NO”。表達式長度小於255,左圓括號少於20個。

輸入輸出格式

輸入格式:

輸入文件stack.in包括一行數據,即表達式。

輸出格式:

輸出文件stack.out包括一行,即“YES”或“NO”。

輸入輸出樣例

輸入樣例#1:

stack.in

2*(x+y)/(1-x)@

輸入樣例#2:

stack.in

(25+x)*(a*(a+b+b)@

 

輸出樣例#1:

stak.out

YES

輸出樣例#2:

stak.out

NO

思路

遇到“(”,k++;遇到“)”,k--。如果最後k=0,輸出YES,反之,輸出NO。

代碼

#include<stdio.h> #include<string.h> char a[260]; int main() { int i=0,k=0,len; gets(a); len=strlen(a)-1; for(i=0;i<=len;i++) { if(a[i]=='(') k++; if(a[i]==')') k--; } if(k==0) printf("YES"); else printf("NO"); return 0; } View Code

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved