当前位置:网站首页>[exercise-1] (UVA 673) parentheses balance/ balanced brackets (stack)
[exercise-1] (UVA 673) parentheses balance/ balanced brackets (stack)
2022-07-06 15:56:00 【Flame car】
A . Parentheses Balance
Description
You are given a string consisting of parentheses () and []. A string of this type is said to be correct:
(a ) if it is the empty string
(b ) if A and B are correct, AB is correct,
(c ) if A is correct, (A) and [A] is correct.
Write a program that takes a sequence of strings of this type and check their correctness. Your program can assume that the maximum string length is 128.
Input
The file contains a positive integer n and a sequence of n strings of parentheses ‘()’ and ‘[]’, one string a line.
Output
A sequence of ‘Yes’ or ‘No’ on the output file.
Samples
Input
3
([])
(([()])))
([()])()
Output
Yes
No
Yes
What do you mean :
Enter a include "()“ and ”[]" The bracket sequence of , Judge whether it is legal . The rules :
① Empty string method
② If A and B It's all legal , be AB legal
③ If A Legal principle (A) and [A] It's all legal
AC Code :
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <stack>
using namespace std;
int n;
int main()
{
cin >> n;
getchar();
while(n--){
string s;
stack<char>st;
getline(cin,s);
int len = s.size();
for(int i = 0; i < len; i++)
{
if(st.empty())
st.push(s[i]);
else
{
if((s[i] == ')' && st.top() == '(') || (s[i] == ']' && st.top() == '['))
st.pop();
else
st.push(s[i]);
}
}
if(st.empty())
cout << "Yes" << endl;
else
cout << "No" << endl;
}
return 0;
}
It's quite speechless , This question is too annoying …… Thought it was a water problem , I didn't expect it to be a dirty water problem , How annoying .
If you understand the meaning of the topic, it should not be very difficult ( Probably ), I found out when I wrote this blog Empty strings are also legal characters !!
No wonder you have to getline() Input , This is the input empty string .
But why do I have to write one before putchar() ??? Is not very good , If there is a big man, you can tell me (T^T).
These two points are simply disgusting, I guess , There is nothing to say about an exam stack (stack) I have to do all these fancy things …… I'm not good at learning !
thought :
① Use the stack to store "(" and “[”
② If you come across ")" It depends on whether the top of the stack is "(", If it is "[“ Or the stack is empty , Is an illegal string .
③ If you come across ”]" It depends on whether the top of the stack is "[", If it is "(" Or the stack is empty , Is an illegal string .
Thought is like this , How to write the code depends on you !
、
边栏推荐
- MySQL import database error [err] 1273 - unknown collation: 'utf8mb4_ 0900_ ai_ ci’
- Learning record: USART serial communication
- STM32学习记录:LED灯闪烁(寄存器版)
- Learning record: use STM32 external input interrupt
- Research Report on pharmaceutical R & D outsourcing service industry - market status analysis and development prospect forecast
- China's earthwork equipment market trend report, technical dynamic innovation and market forecast
- Learning record: use stm32f1 watchdog
- 差分(一维,二维,三维) 蓝桥杯三体攻击
- STM32 how to use stlink download program: light LED running light (Library version)
- 信息安全-安全编排自动化与响应 (SOAR) 技术解析
猜你喜欢
随机推荐
7-1 懂的都懂 (20 分)
Record of force deduction and question brushing
China's peripheral catheter market trend report, technological innovation and market forecast
【练习-2】(Uva 712) S-Trees (S树)
Find 3-friendly Integers
渗透测试 ( 5 ) --- 扫描之王 nmap、渗透测试工具实战技巧合集
信息安全-威胁检测引擎-常见规则引擎底座性能比较
0-1背包問題(一)
C语言学习笔记
Learning record: how to perform PWM output
Gartner: five suggestions on best practices for zero trust network access
C语言必背代码大全
F - Birthday Cake(山东省赛)
Accounting regulations and professional ethics [3]
C语言是低级和高级的分水岭
Ball Dropping
Opencv learning log 31 -- background difference
Market trend report, technical innovation and market forecast of Chinese hospital respiratory humidification equipment
区间和------离散化
【练习-5】(Uva 839)Not so Mobile(天平)