主站
DreamJudge
院校信息
专业题库
模拟考试
机试真题
专业课程
讨论区
兑换中心
登录
注册
发布
以下题解仅供学习参考使用。
抄袭、复制题解,以达到刷AC率/AC数量或其他目的的行为,在N诺是严格禁止的。
N诺非常重视学术诚信。此类行为将会导致您成为作弊者。具体细则请查看N诺社区规则。
心的一方
2021年1月30日 14:23
正向匹配+反向匹配
P1296
回复 1
|
赞 2
|
浏览 7.4k
括号匹配的思路就是左括号入栈,右括号的时候若栈里有元素就出栈匹配,最后若栈里还有左括号就匹配失败。按照这道题的话就是没有元素的时候就变成?,但是有一个问题就是栈里多余的左括号怎么变成$对应相应的位置呢????若是使用符号标记的话,例如"(()"与"()("这两种情况是不一样的,还是很难对应哪个左括号是多余的。 很简单的思路:1.首先直接输出s; 2.接着就是顺序遍历s,建立一...
Cookie‘s AE86
2024年3月23日 16:24
括号匹配问题 题解:c++实现
P1296
回复 1
|
赞 0
|
浏览 258
#include<bits/stdc++.h> using namespace std; struct node{ char data; int index; }; int main(){ string s; while(getline(cin, s)){ int len = s.size(); node rec[len]; ...
1935569240
2024年3月7日 17:19
括号匹配问题 题解:代码如下,用两个栈
P1296
回复 0
|
赞 0
|
浏览 277
#include<iostream> #include<algorithm> #include<stack> #include<string> using namespace std; int main() { stack<char> stac; string ans[100]; string str; while (cin >> str) {...
orderrr
2024年3月6日 16:18
括号匹配问题 题解:c语言 解决,帮我看看就对了66percent
P1296
回复 0
|
赞 0
|
浏览 176
#include <stdio.h> #include <string.h> int main() { char s[105]; while (scanf("%s", s) != EOF) { // 用栈存 没有匹配的左括号的坐标 int top = -1, i = 0, top2 = -1; char stack[105]; int stack1[105] = {0}; char cnt[105] = {'!'}; while (...
DestinyCares+++
2024年1月29日 17:03
括号匹配问题 题解:
P1296
回复 0
|
赞 0
|
浏览 474
#include<bits/stdc++.h> using namespace std; int main(){ string str; while(cin>>str){ stack<char> st; char c[105]; int l...
tuesdasy
2022年3月6日 14:54
括号匹配(结构体方法)
P1296
回复 1
|
赞 1
|
浏览 4.8k
新手,勿喷 这里采用的是结构体的方法 实际上再开辟一个数组直接记录不匹配括号的下标会更简洁(有空再写) #include <iostream> using namespace std; #include <string.h> #include <stack> struct node { char s; int num; }; stack <struct node> st;//创建一个栈,每个元素都是一个结构体,num用来存储字符串下标,以便锁定不匹配括号的位置 char arr[...
C112233
2023年7月31日 16:09
括号匹配问题 题解:
P1296
回复 0
|
赞 1
|
浏览 469
数组+栈,不管是什么先在数组中记录对应字符,即'('记录'$',')'记录'?',不是这两种记录空格。当字符串是右括号时,先标记,然后查看栈顶(同时栈不为空),栈顶为左括号时,就从字符串该位置向前遍历找到第一个记录'$'的位置同时将左括号和右括号的位置都改成空格。 #include <bits/stdc++.h> using namespace std; int main(){ string str; w...
xx_about123456
2022年8月5日 15:02
两次来回遍历解决括号匹配问题
P1296
回复 0
|
赞 2
|
浏览 4.6k
算法思路:两次来回遍历输入 第一次遍历输入字符串(从左往右,标记空格和?) 如果是左括号,入栈,同时标记数组的相应位置置空格 如果是右括号,则判断是否为栈顶元素是否匹配,匹配,标记数组的相应位置置空格,不匹配,标记数组的相应位置置‘? 如果是其它字符,标记数组的相应位置置空格 第二次遍历输入字符串(从右往左,标记$) 如果是右括号,入栈 如果是左括号,则判断是否为栈顶元素是否匹配,不匹配,标记数组的相应位置置‘$’ 带注释代码 ...
Dear_Mr_He
2022年2月3日 20:24
将没办法配对的括号的下标存储下来就好了,剩下的字符都是空格
P1296
回复 0
|
赞 3
|
浏览 5.4k
#include<iostream> #include<cstring> #include<stack> using namespace std; int main() { char s[256]; while (scanf("%s", s) != EOF) { int len = strlen(s); stack<char> st; stack<int> st_index; // 存储栈 st 中的元素对应字符串 s 中的下标 for (int i = 0; i < len...
Abigail
2021年9月16日 19:11
括号的匹配,栈+数组
P1296
回复 0
|
赞 0
|
浏览 4.7k
此题为符号括号匹配的变形,策略为利用栈来存储括号,如果栈顶的半括号和当前扫描到的半括号能匹配,就把它从栈顶弹出。 记录下入栈时各个括号在原字符串中所对应的位置,最后剩下来在栈里面的就是没有匹配的。 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<iostream> #include<stack> #include<map> #include<string> using namespace std; const in...
1
2
题目
括号匹配问题
题解数量
17
发布题解
热门题解
1
将没办法配对的括号的下标存储下来就好了,剩下的字符都是空格
2
两次来回遍历解决括号匹配问题
3
正向匹配+反向匹配
4
1296括号匹配问题(考试之前复习一下)
5
括号匹配问题 题解:
6
括号匹配(结构体方法)
7
简单思路,建立一个栈事实记录入栈字符的位置
8
字符匹配,菜菜还是想了好久
9
括号匹配问题 题解:代码如下,用两个栈
10
括号匹配问题 题解:c++实现