PTA 7-2 符号配对(栈模拟)】的更多相关文章

请编写程序检查C语言源程序中下列符号是否配对:/*与*/.(与).[与].{与}. 输入格式: 输入为一个C语言源程序.当读到某一行中只有一个句点.和一个回车的时候,标志着输入结束.程序中需要检查配对的符号不超过100个. 输出格式: 首先,如果所有符号配对正确,则在第一行中输出YES,否则输出NO.然后在第二行中指出第一个不配对的符号:如果缺少左符号,则输出?-右符号:如果缺少右符号,则输出左符号-?. 输入样例1: void test() { int i, A[10]; for (i=0;…
直接用栈模拟即可,数组可做,但因为这节数据结构是栈,为了期末考试还是手写一下栈的操作,值得注意的是,这道题用gets函数在PTA上会编译错误,用scanf("%[^\n]", str)会有一个样例无法通过,最后我使用了string读入数据,应该是我对scanf格式化读入不够了解,有知道的朋友可以评论区告诉我,非常感谢 附上代码: #include <stdio.h> #include <malloc.h> #include <stdlib.h> #i…
请编写程序检查C语言源程序中下列符号是否配对:/*与 */.(与 ).[与].{与}. 输入格式: 输入为一个C语言源程序.当读到某一行中只有一个句点.和一个回车的时候,标志着输入结束.程序中需要检查配对的符号不超过100个. 输出格式: 首先,如果所有符号配对正确,则在第一行中输出YES,否则输出NO.然后在第二行中指出第一个不配对的符号:如果缺少左符号,则输出?-右符号:如果缺少右符号,则输出左符号-?. 输入样例1: void test() { int i, A[10]; for (i=0…
7-2 符号配对(20 分) 请编写程序检查C语言源程序中下列符号是否配对:/*与*/.(与).[与].{与}. 输入格式: 输入为一个C语言源程序.当读到某一行中只有一个句点.和一个回车的时候,标志着输入结束.程序中需要检查配对的符号不超过100个. 输出格式: 首先,如果所有符号配对正确,则在第一行中输出YES,否则输出NO.然后在第二行中指出第一个不配对的符号:如果缺少左符号,则输出?-右符号:如果缺少右符号,则输出左符号-?. 输入样例1: void test() { int i, A[…
传送门 Description As the new term comes, the Ignatius Train Station is very busy nowadays. A lot of student want to get back to school by train(because the trains in the Ignatius Train Station is the fastest all over the world ^v^). But here comes a pr…
这道题在LA是挂掉了,不过还好,zoj上也有这道题. 题意:好大一颗树,询问父子关系..考虑最坏的情况,30w层,2000w个点,询问100w次,貌似连dfs一遍都会TLE. 安心啦,这肯定是一道正常人能做的题目.不过是需要几个小技巧. 1.2000w个点不一定都要保存下来,事实上,虽然题目给了256M的空间,只要开了两个这么大的数组,MLE是跑不了的,所以只保存30w个父节点. 2.如果这30w个父节点构成一条链,dfs的栈肯定爆.所以需要用栈模拟dfs.这里用的是stack<int>,当然…
Parentheses 题目链接: http://acm.hust.edu.cn/vjudge/contest/127401#problem/A Description http://7xjob4.com1.z0.glb.clouddn.com/9cf04e507e13a41d77bca3a75bb51e19 Input The first line contains an integer T ≤ 10 indicating the number of test cases. The first…
主题链接: id=1363">啊哈哈,点我点我 思路: 这道题就是一道简单的栈模拟. .. .我最開始认为难处理是当出栈后top指针变化了. .当不满足条件时入栈的当前位置怎么办.这时候想到用一个Copy数组保持入栈记录就可以. .当满足全部的火车都出栈时或者已经没有火车能够进栈了,那么久跳出.. 最后推断 是否出栈的火车是否达到n... 题目: Rails Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 24940…
用栈模拟汉诺塔问题 描述 在经典的汉诺塔问题中,有 3 个塔和 N 个可用来堆砌成塔的不同大小的盘子.要求盘子必须按照从小到大的顺序从上往下堆 (如:任意一个盘子,其必须堆在比它大的盘子上面).同时,你必须满足以下限制条件: 每次只能移动一个盘子. 每个盘子从堆的顶部被移动后,只能置放于下一个堆中. 每个盘子只能放在比它大的盘子上面. 请写一段程序,实现将第一个堆的盘子移动到最后一个堆中. 样例 输入 3 输出 towers[0]: [] towers[1]: [] towers[2]: [2,…
1289 大鱼吃小鱼 栈模拟 思路 题目链接 https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1289 思路: 用栈来模拟,O(n)即可 朝右的小鱼进栈,朝左的小鱼来攻关,看能攻几关,栈里的小鱼就GG几条,如果攻不过去,只能自己GG 代码: #include <bits/stdc++.h> using namespace std; int n,dir,size,temp; stack<int> s; in…
题意: 就是数位哈密顿回路 解析: 是就算了...尼玛还不能直接用dfs,得手动开栈模拟dfs emm...看了老大半天才看的一知半解 #include <iostream> #include <cstdio> #include <sstream> #include <cstring> #include <map> #include <cctype> #include <set> #include <vector&g…
用两个栈模拟: Editor Time Limit: 3000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 1913    Accepted Submission(s): 591 Problem Description   Sample Input 8 I 2 I -1 I 1 Q 3 L D R Q 2   Sample Output 2 3 Hint The…
吐泡泡题目链接:https://www.nowcoder.com/acm/contest/74/A 题目: 思路: 这种题目当初卡了我很久,今天早训时遇到一个一样得题,一眼就想到用栈模拟,就又回来把这题补了.这题很简单,看代码基本上就能看懂,就不解释了. 代码实现如下: #include <set> #include <map> #include <queue> #include <stack> #include <cmath> #include…
题目链接:https://cn.vjudge.net/contest/209473#problem/D 题目大意:有一棵树,这棵树的前n个节点拥有子节点,告诉你n的大小,以及这n个节点各有的子节点个数,对于Q个询问<x,y>,回答x是否是y的祖先. 解题思路: 一开始想的LCA,倍增解决.然后一看数据范围,2e7!瞬间被吓回来了. 想了各种方法百思不得其解最后看了题解orz(强烈建议独立思考,挫败感很强!). 题解……万分机智,我们思考一下深搜建树的过程,先遍历到一个父亲节点,再往下遍历到这个…
将问题的各状态之间的转移关系描述为一个图,则深度优先搜索遍历整个图的框架为:Dfs(v) {if( v 访问过)return;将v标记为访问过;对和v相邻的每个点u: Dfs(u);}int main() {while(在图中能找到未访问过的点 k) Dfs(k);} 例题: POJ1164 The Castle Description 1 2 3 4 5 6 7 ############################# 1 # | # | # | | # #####---#####---#-…
Description Standard web browsers contain features to move backward and forward among the pages recently visited. One way to implement these features is to use two stacks to keep track of the pages that can be reached by moving backward and forward.…
链接:https://ac.nowcoder.com/acm/contest/332/I 来源:牛客网 题目描述 bleaves 最近在 wzoi 上面做题. wzoi 的题目有两种,一种是 noip 题,一种是省选题. bleaves 的做题方式很特别.每一天,她可能会看一道题目,这时她会选择题目种类,然后 wzoi 会在选定种类中随机扔给她一道她还没看过的题,她会把这道题看一遍,然后存在脑子里慢慢思考:她也有可能写题,这时她一定会写没写过的题中看的时间最迟的一题(如果不存在没写过的且没看过的…
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=151 这里可以用栈模拟,也可以用STL,reverse();函数. 但是我这里用栈模拟,PE了,了解一下这个做法吧. #include <cstdio> #include <iostream> #include <algorithm> #include <string.h> #include <string> usin…
Description  ``Accordian'' Patience  You are to simulate the playing of games of ``Accordian'' patience, the rules for which are as follows: Deal cards one by one in a row from left to right, not overlapping. Whenever the card matches its immediate n…
一. 用两个栈模拟一个队列 思路一: 1. 一个栈s1作为数据存储,另一个栈s2,作为临时数据存储. 2. 入队时将数据压人s1 3. 出队时将s1弹出,并压人s2,然后弹出s2中的顶部数据,最后再将剩余数据弹出s2,并压人s1. 思路二: 1. 一个栈s1作为数据存储,另一个栈s2,作为临时数据存储. 2. 入队时,判断s1, 是否为空,如果不为空,则将数据直接压入s1, 如果为空,则将s2中的数据全部倒入s1,在将数据压人s1. 3. 出队时,判断s2, 是否为空,如果不为空,则直接弹出s2…
挖草,AtCoder实在是太吊了~ %%%,目前只A了两题: A题: 就是利用栈模拟一下就好了:S进栈,T的话有S就出栈,然后len减一下就好了: #include <bits/stdc++.h> using namespace std; char s[200020]; stack<int>q; int main() { scanf("%s",s+1); int len=strlen(s+1); int ans=0; for(int i=1;i<=len;…
Train Problem I                                                                                                                 Time Limit: 2000/1000 MS (Java/Others)                                                                                    …
P1054 等价表达式 题目描述 明明进了中学之后,学到了代数表达式.有一天,他碰到一个很麻烦的选择题.这个题目的题干中首先给出了一个代数表达式,然后列出了若干选项,每个选项也是一个代数表达式,题目的要求是判断选项中哪些代数表达式是和题干中的表达式等价的. 这个题目手算很麻烦,因为明明对计算机编程很感兴趣,所以他想是不是可以用计算机来解决这个问题.假设你是明明,能完成这个任务吗? 这个选择题中的每个表达式都满足下面的性质: 1. 表达式只可能包含一个变量‘a’. 2. 表达式中出现的数都是正整数…
题目传送门 题意: 输入一段字符串,字符串中连续的三个相同的字符可以消去,消去后剩下的左右两段字符串拼接,求最多可消去次数. 输入:ATCCCTTG   输出:2 ATCCCTTG(消去CCC)——>ATTTG(消去TTT)——>AG 题解: 签到题,用栈模拟即可. Code: 用栈模拟: /*7ms*/ 1 #include<bits/stdc++.h> using namespace std; ; int main() { string str; while(!(cin>…
You are given a function ff written in some basic language. The function accepts an integer value, which is immediately written into some variable xx. xx is an integer variable and can be assigned values from 00 to 232−1232−1. The function contains t…
剑指Offer9--使用双栈模拟队列 队列Queue是具有FIFO(First in First out)特性的数据结构,栈Stack是具有LIFO(后进先出)特性的数据结构.下面提供一种思路使用双栈来模拟队列. 1. 思路--为何需要用两个栈? 很显然一个普通的栈是无法替代队列的,这是因为先进栈的元素总是后出栈. 如果输入序列是123(假设push和pop不交替进行),输出序列仅为321,与队列恰好是反过来的.那么,我们产生了一个思路,就像是"负负得正"一样,如果增加一个栈来接收上一…
首先想说,英语太烂这题读了很长时间才读懂......题意是说输入有几张牌,然后输入这些牌的初始状态(是面朝上还是面朝下),然后输入操作方式,R表示翻一下右边的牌堆,L表示翻一下左边的牌堆,直到最后摞成了一个牌堆.后面跟着一排问题,输入i,问从上往下数的第i张牌编号,以及这张牌的状态. 这题只要读懂了题意思路也挺清晰的了,用栈进行模拟一步一步走就行了,我的思路是先对牌的状态进行计算,如果是R,就把这一步右边所有牌都翻过来,如果是L,就把这一步左边所有牌都翻过来,这样先把所有牌编号和状态都对应好了,…
传送门 Description 给出了N个单词,已经按长度排好了序.如果某单词i是某单词j的前缀,i->j算一次接龙(两个相同的单词不能算接龙). 你的任务是:对于输入的单词,找出最长的龙. Input 第一行为N(1<=N<=105).以下N行每行一个单词(由小写组成),已经按长度排序.(每个单词长度<50) Output 仅一个数,为最长的龙的长度. Sample Input 5 i a int able inter Sample Output 3 思路   某单词i是某单词j…
秋实大哥搞算数 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit Status 秋实大哥大学物理挂科了(误),于是在下学期的前两周的某一天要悲剧的补考.为了不给学校的挖掘机大楼做贡献,秋实大哥决定在假期里努力复习.当然,良好的计算能力也是非常必要的,毕竟是涉及计算自己做多少分的题能够通过考试的问题.现在他给自己出了一大堆长长的只有涉及整形四则运算式子,然后埋头计算结…
Stack Machine Executor 题目链接: http://acm.hust.edu.cn/vjudge/problem/26636 Description http://7xjob4.com1.z0.glb.clouddn.com/7df4b3c52d86b5aca54ec47060e43f56 Input The input contains description of several machines. Each machine is described by two par…