主站
DreamJudge
院校信息
专业题库
模拟考试
机试真题
专业课程
答疑区
兑换中心
登录
注册
上岸
以下题解仅供学习参考使用。
抄袭、复制题解,以达到刷AC率/AC数量或其他目的的行为,在N诺是严格禁止的。
N诺非常重视学术诚信。此类行为将会导致您成为作弊者。具体细则请查看N诺社区规则。
勋谦
2024年7月25日 14:30
南京理工-括号匹配 题解:stack + 顺序入栈(跟普通括号匹配有差
P1838
回复 0
|
赞 0
|
浏览 291
#include <bits/stdc++.h> using namespace std; int main(){ string s; while(cin >> s){ stack<char> ss; for(int i = 0;i < s.size();i ++){ if(!ss.empty()){ char ch = ss.top(); if((ch == '(' && s[i] == ')') || (ch == '{' && s[i] =...
damowanghwj
2024年3月30日 17:19
南京理工-括号匹配 题解:使用stack 轻松解决
P1838
回复 0
|
赞 0
|
浏览 496
#include<bits/stdc++.h> using namespace std; int GetPriority(char ch){ if(ch == '(' || ch == ')') return 1; if(ch == '<' || ch == '>') return 2; if(ch == '[' || ch == ']') return 3; if(ch == '{' || ch == '}') return 4; } bool is_Left(char ch){ if(ch ==...
RingoCrystal
2024年3月30日 12:42
南京理工-括号匹配 题解:map辅助判断
P1838
回复 0
|
赞 0
|
浏览 564
这个解法的本质其实很简单,这里提供一个例子来辅助大家理解 ({[)]为例,首先加入(,第一次判定为不等{加入,之后又不等[加入,)仍然不等加入,此时为({[),这时其实已经很显然了,对于左括号和不能正确匹配的右括号都采用跳过的方式,并不是直接就结束了,最后所以判断是否为空,对于正常的状态,不进行push,只进行pop,最后就可以得到空 #include <bits/stdc++.h> using namespace std; int main(){ string s; map<char,char> cmp={{'<','>...
A001
2024年3月22日 10:07
南京理工-括号匹配 题解:为什么不通过呢
P1838
回复 2
|
赞 0
|
浏览 471
#include<iostream> #include<string.h> #include<map> #include<stack> using namespace std; int main(){ char s[10005]; while(cin>>s){ stack<char> S; &nb...
1935569240
2024年3月7日 17:40
南京理工-括号匹配 题解:简单代码来了,题目输入6行有误
P1838
回复 0
|
赞 0
|
浏览 478
#include<iostream> #include<algorithm> #include<stack> #include<string> using namespace std; int main() { string s; while (cin >> s) { stack<char> stac; &nb...
xx_about123456
2022年8月5日 14:42
利用栈和map解决括号匹配
P1838
回复 0
|
赞 1
|
浏览 4.8k
利用栈和map解决括号匹配问题; 栈的作用:遍历输入字符串,左括号入栈,右括号判断是否匹配,匹配则弹栈 map的作用:便于判断是否匹配,map<char,int>char是括号字符,int是括号字符的特征值,左括号为负数,右括号为正数, 如 ( 的int特征值为-2 )的int特征值为 2 如果匹配,相加得0 带注释代码: #include<bits/stdc++.h> using namespace std; map<char,int> ...
aatroy
2022年1月10日 10:57
有手就行做法
P1838
回复 0
|
赞 0
|
浏览 6.8k
#include using namespace std; #define ll long long #define _for(i,a,b) for(int i=(a);i<=(b);i++) int main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); string s; cin>>s; int len = s.length(); int ans = 0; char ch1[5] = {' ','<...
杨德胜
2021年3月16日 15:19
P1838 解题思路分享
P1838
回复 0
|
赞 0
|
浏览 7.6k
#include <bits/stdc++.h> using namespace std; int main() { char s[10005]; while(cin>>s){ stack<char> st; for(int i=0; i<strlen(s); i++){ if(!st.empty()){ char c=st.top(); if(c=='<'&&s[i]=='>' || c=='('&&s[i]==')' || c=='['&am...
山楂
2021年2月23日 17:34
样例有问题
P1838
回复 1
|
赞 0
|
浏览 7.7k
样例的第一对小括号是中文格式的,害得我一直在找bug。。。。。
shmilyzsc
2021年2月20日 11:41
栈做法
P1838
回复 0
|
赞 0
|
浏览 7.7k
#include <bits/stdc++.h> using namespace std; char s[1010]; map<char, char> mp; int main() { mp['<'] = '>'; mp['('] = ')'; mp['{'] = '}'; mp['['] = ']'; while(cin >> s) { stack<char> st; for(int i = 0; i < strlen(s)...
题目
南京理工-括号匹配
题解数量
10
发布题解
热门题解
1
利用栈和map解决括号匹配
2
南京理工-括号匹配 题解:为什么不通过呢
3
南京理工-括号匹配 题解:map辅助判断
4
南京理工-括号匹配 题解:使用stack 轻松解决
5
南京理工-括号匹配 题解:简单代码来了,题目输入6行有误
6
P1838 解题思路分享
7
南京理工-括号匹配 题解:stack + 顺序入栈(跟普通括号匹配有差别)
8
有手就行做法
9
栈做法
10
样例有问题