首页 > 其他分享 >4月考试错题总结

4月考试错题总结

时间:2024-07-21 11:40:15浏览次数:15  
标签:总结 int top else 错题 push include 考试 size

错题总结

T1:P1739 表达式括号匹配

错误代码:

#include<iostream>
#include<stack>
using namespace std;
int main() {
	stack<char>	q;
	string a;
	cin>>a;
	for(int i=0;i<a.size()-1;i++)
	{
		if(a[i]=='(')
			q.push('(');
		else if(a[i]==')')
			if(q.size())
				q.pop();
			else
			{
				cout<<"No";
				return 0;
			}
	}
	if(!q.size())
		cout<<"YES";
	else
		cout<<"NO";
	return 0;
}

代码错误点

else
{
	cout<<"No";
	return 0;
}

修改方案

cout<<"No";//错误代码
cout<<"NO";//更改后代码

正确代码

#include<iostream>
#include<stack>
using namespace std;
int main() {
	stack<char>	q;
	string a;
	cin>>a;
	for(int i=0;i<a.size()-1;i++)
	{
		if(a[i]=='(')
			q.push('(');
		else if(a[i]==')')
			if(q.size())
				q.pop();
			else
			{
				cout<<"NO";
				return 0;
			}
	}
	if(!q.size())
		cout<<"YES";
	else
		cout<<"NO";
	return 0;
}

T2:[ABC328D] Take ABC

错误代码:

#include <cstring>
#include <iostream>
#include <stack>
using namespace std;
int main()
{
    string a;
    cin >> a;
    stack<char> q;
    int len = a.size();
    for (int i = 0; i < len; i++)
    {
        if (a[i] == 'A' || a[i] == 'B')
        {
            q.push(a[i]);
        }
        else if (a[i] == 'C')
        {
            if (q.top() == 'B' && q.size() > 2)
            {
                q.pop();
                if (q.size())
                {
                    if (q.top() == 'A')
                    {
                        q.pop();
                        continue;
                    }
                    else
                    {
                        q.push('B');
                        q.push(a[i]);
                    }
                }
                else
                {
                    q.push('B');
                    q.push(a[i]);
                }
            }
            else
            {
                q.push(a[i]);
            }
        }
    }
    string ans = "";
    while (q.size())
    {
        ans = q.top() + ans;
        q.pop();
    }
    cout << ans;
    return 0;
}

代码错误点

if (q.top() == 'B' && q.size() > 2)

修改方案

if (q.top() == 'B' && q.size() > 2) //错误代码

//正确代码
if (q.size())
	if(q.top() == 'B')
	{
	//中间一样
	}else
   {
   		q.push(a[i]);
   	}
else
{
	q.push(a[i]);
}

正确代码

#include <cstring>
#include <iostream>
#include <stack>
using namespace std;
int main()
{
    string a;
    cin >> a;
    stack<char> q;
    int len = a.length();
    for (int i = 0; i < len; i++)
    {
        if (a[i] == 'A' || a[i] == 'B')
        {
            q.push(a[i]);
        }
        else if (a[i] == 'C')
        {
            if (q.size())
            {
                if (q.top() == 'B')
                {
                    q.pop();
                    if (q.size())
                    {
                        if (q.top() == 'A')
                        {
                            q.pop();
                            continue;
                        }
                        else
                        {
                            q.push('B');
                            q.push(a[i]);
                        }
                    }
                    else
                    {
                        q.push('B');
                        q.push(a[i]);
                    }
                }
                else
                {
                    q.push(a[i]);
                }
            }
            else
            {
                q.push(a[i]);
            }
        }
    }
    string ans = "";
    while (q.size())
    {
        ans = q.top() + ans;
        q.pop();
    }
    cout << ans;
    return 0;
}

别问我为什么要发,问就是老师逼的

标签:总结,int,top,else,错题,push,include,考试,size
From: https://www.cnblogs.com/basibatuo/p/18314298

相关文章

  • Day5 本周总结
    目录数组链表总结数组关于数组,本身结构上比较简单,所以题型上要思考的较多,思想上大多为减治策略,模拟等减而治之的思想,即将一个未知区间的数组亦步亦趋的转化为某些区间已知,某些区间未知的中间状态,最终转化为全部区间已知。(如二分查找的两种不同返回值情况)。技巧上,特定题型比如......
  • mysql常用命令总结
    连接数据库格式mysql-h连接地址-u用户-p密码-P端口例如mysql-h127.0.0.1-uroot-p123456-P3310 常用用户管理操作https://dev.mysql.com/doc/refman/8.0/en/create-user.html创建用户CREATEUSER'用户名字'@'%'IDENTIFIEDBY'密码';例如CREATEUSER'wxh......
  • 基于SpringBoot+Vue在线考试系统的设计和实现(源码+文档+部署讲解)
    博主介绍:全网粉丝10W+,CSDN博客专家、全栈领域优质创作者,3年JAVA全栈开发经验,专注JAVA技术、系统定制、远程指导,致力于企业数字化转型。研究方向:SpringBoot、Vue.JS、MyBatisPlus、Redis、SpringSecurity、MySQL、小程序、Android、Uniapp等。博主说明:本文项目编号......
  • 科目三考试过程
    一、准备阶段 1.观察左后方没车经过后,开门往后走绕车一周,身体距离车50cm以内。在车前车后分别i按感应器3秒。  上车调座椅、调反光镜、检查复位灯光、系安全带 2.模拟夜间灯光 现在开始夜间模拟灯光考试, 开启(近光灯) 口令1:夜间在没有照明、或照明不良的道路行......
  • 每周JAVA学习总结
    一、隐式转换和强制转换隐式转换(自动类型转换)隐式转换是指编译器在程序运行时自动将一种数据类型转换为另一种数据类型,而无需程序员干预。隐式转换遵循以下规则:(1)数据范围小的类型可以自动转换为数据范围大的类型(低精度转高精度)。(2)转换过程中不会丢失精度。例如:inta=10;......
  • NOI2024 总结
    赛时经历Day1想了1h的t1,然后思路不是很清晰,写了1h。想t2,顺着擂台赛想下去,可以分成\(k\)个一组,每组\(\dfrac{k(k-1)}2\)次查询,然后选出一个最大的组成一个新的序列。过了一会儿,想到dp这个过程,得到82pts。剩下大约1h30min,想t3,一直在往计数+容斥的方向......
  • 第二周总结
    一、阅读第二周我阅读了《大道至简》第二章的内容,第二章主要讲了勤奋的人与懒惰的人在方法创新方面的差异,引用了《李冰凿山》的故事,通过“积薪烧之”的方式与第一章愚公“碎石击壤”形成对比,突出了本章的主题。愚公是典型的勤奋者的身份,但工作缺乏动脑,不创新,使得工作费时又费力。......
  • 周总结二
    Hive简介什么是Hive1、Hive由Facebook实现并开源2、是基于Hadoop的一个数据仓库工具3、可以将结构化的数据映射为一张数据库表4、并提供HQL(HiveSQL)查询功能5、底层数据是存储在HDFS上6、Hive的本质是将SQL语句转换为MapReduce任务运行7、使不熟悉MapRed......
  • 2024.7.20 模拟赛总结
    T1lcdStatement:给定\(n(1\len\le10^8)\),问有多少对\((i,j)(1\lei,j\len)\)满足\(\frac{xy}{\gcd(x,y)^2}\le3\)。Solution:简单题。令\(x'=\frac{x}{\gcd(x,y)},y'=\frac{y}{\gcd(x,y)}\),枚举\((x',y')\)并计算即可......
  • 每周总结2
    今天测试没过 后端代码出问题了nnd安装相应的python包#用于flask在使用ORM模型操作数据库pipinstallflask-sqlalchemy#Python操作数据库的驱动程序pipinstallpymysql#对密码加密和解密pipinstallcryptography#用于将ORM模型的变更同步到数据库中pipinstallflas......