测试题目气死人

news2024/10/7 6:45:43

服了差不多每一题都要错几个案例我真的服了wok,什么鬼东西!!!

lx学长的羊圈

Description

lx学长是一个养羊大户,有成千上百个羊圈。可是却一次也没来羊圈帮过忙,今天他被叫来羊圈给羊羊们施展成双成对大法。关于成双成对大法,学长虽然没用实践过,但是他表现得胸有成竹。而成双成对大法需要类型相同的羊才能完成,不过lx学长不知道每个羊圈能否完成成双成对大法,lx学长太懒了,想请你帮帮他。

羊圈里面有三种类型的羊,分别为(),[].{},学长的羊圈和别家的羊圈不同,羊圈中也可能不只有羊。

学长会给你一串字符,不超过100个字符,可能包括括号、数组、字母、标点符号、空格,你的任务是检查这一串字符中的(),[],{}是否匹配。

Input

一行数据,不超过100个字符并含有( ,) ,[, ],{, }一个或多个。

Output

如果匹配就输出“yes”,不匹配输出“no”

Sample Input 1 

sin(20+10)

Sample Output 1

yes

Sample Input 2 

{[}]

Sample Output 2

no

题目理解这个题目还好,改一改也能对,就是一个栈来记录不同的左右符号,如果我们先找到任意一个左符号,比如(,那么我们就吧这个东西入栈,当下次找到一个右符号的时候,我们就把这个右符号和栈顶的那个符号进行对比,如果两个相同的话,我们的配对就成功!

#include <stdio.h>
#include <string.h>
int check(char left,char right)
{
    if(left=='('&&right==')')
    { 
   
        return 1;
    }
    
    if(left=='{'&&right=='}')
    { 
   
        return 1;
    }
    
    if(left=='['&&right==']')
    { 
   
        return 1;
    }
    
    return 0;
}
int main()
{
	int i,top=0;
	char str[101],chack[101];
	gets(str);
	int l=strlen(str);
	for(i=0;i<l;i++)
	{
		if(str[i]=='('||str[i]=='{'||str[i]=='[')
		{
			chack[top]=str[i];
			top++;
		}
		else if(str[i]==')'||str[i]=='}'||str[i]==']')
		{
			if(check(chack[top-1],str[i])==1)
			{
				top--;
				continue;
			}
			else{
				printf("no");
				return 0;
			}
		}
	}
	if(top==0)
	{
		printf("yes");
	}
	else{
		printf("no");
	}
}

下一个更大元素

Description

给定一个循环数组 nums ( nums[nums.length - 1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的 下一个更大元素 。

数字 x 的 下一个更大的元素 是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1 。

Input

第一行为n,代表nums的大小(1≤n≤10000)

第二行 n个数

Output

输出一个长度n的数组,每个元素代表对应的循环数组中比i大的下一个元素

Sample Input 1 

3
1 2 1

Sample Output 1

2 -1 2

Sample Input 2 

5
1 2 3 4 3

Sample Output 2

2 3 4 -1 4

这个我真的无语,我开始直接把这个数组复制一遍,建立一个更大的数组,直接来查找,然后直接错掉,然后看大佬们不是两个数组,他们是对总长度取余也就是%,我发现这样子好像也是一样的意思,然后我就改成这样子,然后结果还是错一半我他妈的!!!这个地方连之前的代码什么的都看不了,也下载不了错误的数据wok

#include <stdio.h>
int main()
{
	int N;
	int i,j,teap;
	scanf("%d",&N);
	int a[10001];
	int b[10001];
	for(i=1;i<=N;i++)
	{
		scanf("%d",&a[i]);
		b[i]=-1;
	}
	for(i=1;i<=N;i++)
	{
		for(j=i+1;j<=2*N;j++)
		{
			if(a[j%N]>a[i])//取余就是一样的
			{
				b[i]=a[j%N];
				break;
			}
		}
	}
	for(i=1;i<=N;i++)
	{
		printf("%d ",b[i]);
	}
}

合并果子

Description

在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。     每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。     因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。假定每个果子重量都为1,并且已知果子的种类数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最少,并输出这个最小的体力耗费值。     例如有3种果子,数目依次为1,2,9。可以先将1、2堆合并,新堆数目为3,耗费体力为3。接着,将新堆与原先的第三堆合并,又得到新的堆,数目为12,耗费体力为12。所以多多总共耗费体力=3+12=15。可以证明15为最小的体力耗费值。

Input

输入包括两行,第一行是一个整数n(1< =n< =100000),表示果子的种类数。第二行包含n个整数,用空格分隔,第i个整数ai(1< =ai< =2000)是第i种果子的数目。

Output

输出包括一行,这一行只包含一个整数,也就是最小的体力耗费值。输入数据保证这个值小于2^31。

Sample Input 1 

3 
1 2 9 

Sample Output 1

15

这题也死坑,我开始先是想着,他这不就是从小到大一直加过去就ok,然后我就用个普普通通的排序排一下,然后交上去直接错,我想着我思路也没错,我就换排序方法,换成快速排序,交上去,ok这次错一半,然后我实在想不出来了,去网上看大佬解答,发现思路和我都是一样的,就是找出最小的元素来相加,不过他们用的是优先队列(我压根不知道这什么东西,学都没学),就是去学了一下,然后发现直接c++的库函数一用一下子解决wok

#include<bits/stdc++.h>
#define M 10005
using namespace std;
priority_queue<int,vector<int>,greater<int> > Q;
int ans=0,n,x;
int main()
{
	cin>>n;
	for(int i=0;i<n;i++)
	{
		cin>>x;
		Q.push(x);
	}
	
	for(int i=1;i<n;i++)
	{
		int a=Q.top(); Q.pop();
		int b=Q.top(); Q.pop();
		ans+=a+b;
		Q.push(a+b);
	}
	cout<<ans;
	return 0;
}

FBI树

Description

我们可以把由“0”和“1”组成的字符串分为三类:全“0”串称为B串,全“1”串称为I串,既含“0”又含“1”的串则称为F串。

FBI树是一种二叉树,它的结点类型也包括F结点,B结点和I结点三种。由一个长度为2^N的“01”串S可以构造出一棵FBI树T,递归的构造方法如下:

1)T的根结点为R,其类型与串S的类型相同;

2)若串S的长度大于1,将串S从中间分开,分为等长的左右子串S1和S2;由左子串S1构造R的左子树T1,由右子串S2构造R的右子树T2。

现在给定一个长度为2^n的“01”串,请用上述构造方法构造出一棵FBI树,并输出它的后序遍历序列。

Input

第一行是一个整数N(0  < =  N  < =  10),第二行是一个长度为2^N的“01”串。

数据规模和约定,对于全部的数据,N  < =  10。

注:
[1]  二叉树:二叉树是结点的有限集合,这个集合或为空集,或由一个根结点和两棵不相交的二叉树组成。这两棵不相交的二叉树分别称为这个根结点的左子树和右子树。
[2]  后序遍历:后序遍历是深度优先遍历二叉树的一种方法,它的递归定义是:先后序遍历左子树,再后序遍历右子树,最后访问根。

Output

包括一行,这一行只包含一个字符串,即FBI树的后序遍历序列。

Sample Input 1 

3 
10001011 

Sample Output 1

IBFBBBFIBFIIIFF

这个题目还好,我看到就是刚刚好这几天学了线段树,从字节点开始建树,然后就线段树把树搞出来就直接后序遍历就ok,但是交上去还是错wokwokwok,错一半wok!!!

#include <stdio.h>
int a[100],tree[10000];
char b[100];
void creat(int node,int left,int right)
{
	if(left==right)
	{
		if(a[left]==1) tree[node]='I';
		else tree[node]='B';
		return;
	}
	int mid=(left+right)/2;
	creat(node*2,left,mid);//左树
	creat(node*2+1,mid+1,right);//右树
	if(tree[2*node]=='B'&&tree[2*node+1]=='B') tree[node]='B';
	else if(tree[2*node]=='I'&&tree[2*node+1]=='I') tree[node]='I';
	else tree[node]='F';
}
void houxu(int n)
{
	if(tree[2*n]) houxu(2*n);//左
	if(tree[2*n+1]) houxu(2*n+1);//右
	printf("%c",tree[n]);//根
}
int main()
{
	int i,j;
	int n;
	int ans=1;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		ans=2*ans;
	}
	//printf("888888");
	scanf("%s",b);
	for(i=1,j=0;i<=ans;j++,i++)
	{
		if(b[j]=='1') a[i]=1;
		else a[i]=0;
		//printf("%d ",a[i]);
	}
	creat(1,1,ans);
	houxu(1);
}

 真的写题目就气死人wok,我估摸着这几题都要栈和队列的知识来写(;´༎ຶД༎ຶ`) ,明天要猛学一下栈和队列,栈和队列太拉了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/416077.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

力扣算法系统刷题题解记录

力扣算法系统刷题题解记录 文章目录力扣算法系统刷题题解记录前言一、数组704二分查找示意图&#xff1a;解题思路代码27.移除元素示意图解题思路代码前言 参考顺序和资料&#xff1a;《代码随想录》 二刷要认真做笔记啦&#xff0c;加油&#xff01; 一、数组 704二分查找 …

2023-04-12 面试中常见的数组题目

数组中的问题其实最常见 通过基础问题&#xff0c;掌握写出正确算法的“秘诀”巧妙使用双索引技术&#xff0c;解决复杂问题对撞指针- 滑动窗口 1 从二分查找法看如何写出正确的程序 本节学习重点&#xff1a;处理边界问题&#xff01; 1.确定边界范围方法&#xff0c;先用区…

13、Qt生成dll-QLibrary方式使用

Qt创建dll&#xff0c;使用QLibrary类方式调用dll 一、创建项目 1、新建项目->其他项目->Empty qmake Project->Choose 2、输入项目名&#xff0c;选择项目位置&#xff0c;下一步 3、选择MinGW&#xff0c;下一步 4、完成 5、.pro中添加TEMPLATE subdirs&#xff…

定时任务之时间轮算法

初识时间轮 我们先来考虑一个简单的情况&#xff0c;目前有三个任务A、B、C&#xff0c;分别需要在3点钟&#xff0c;4点钟和9点钟执行&#xff0c;可以把时间想象成一个钟表。 如上图中所示&#xff0c;我只需要把任务放到它需要被执行的时刻&#xff0c;然后等着时针转到这个…

IP协议(网络层重点协议)

目录 一、IP协议报头格式 二、地址选择 1、IP地址 &#xff08;1&#xff09;格式 &#xff08;2&#xff09;组成 &#xff08;3&#xff09;分类 &#xff08;4&#xff09;子网掩码 三、路由选择 IP协议是网络层的协议&#xff0c;它主要完成两个方面的任务&#xf…

4.16--设计模式之创建型之代理模式(总复习版本)---脚踏实地,一步一个脚印

1.代理对象 定义&#xff1a;代理模式给某一个对象提供一个代理对象&#xff0c;并由代理对象控制对原对象的引用&#xff0c;从而实现对真实对象的操作。 通俗的来讲代理模式就是我们生活中常见的中介。 在代理模式中&#xff0c;代理对象主要起到一个中介的作用&#xff0c;…

初识Docker并在linux完成安装

文章目录一、 初识Docker1.1 简介1.2 Docker和虚拟机的异同1.3 Docker架构二、 DockerHub三、Docker的安装一、 初识Docker 1.1 简介 Docker是一种开源的容器化平台&#xff0c;可以让开发者在容器中打包、发布、运行和管理应用程序。它使用轻量级的容器来隔离应用程序和它们的…

Scrapy爬虫基本使用与股票数据Scrapy爬虫

Scrapy爬虫的常用命令 scrapy命令行格式 红色是常用的三种命令 为什么Scrapy采用命令行创建和运行爬虫&#xff1f; 命令行&#xff08;不是图形界面&#xff09;更容易自动化&#xff0c;适合脚本控制 本质上&#xff0c;Scrapy是给程序员用的&#xff0c;功能&#xff08…

vue打包之后,可以进行修改配置后端地址、端口等信息方法

前言 用vue-cli构建的项目通常是采用前后端分离的开发模式&#xff0c;也就是前端与后台完全分离&#xff0c;此时就需要将后台接口地址打包进项目中&#xff0c;但是&#xff0c;难道我们只是改个接口地址也要重新打包吗&#xff1f;当然不行了&#xff0c;那就太麻烦了&#…

支付宝沙箱环境+SpringBoot+内网穿透整合开发

目录 1.查看沙箱账号 2.内网穿透 3.沙箱环境整合SpringBoot开发 下面我将以实际案例详细介绍如何使用沙箱环境进行支付宝支付对接的开发 1.查看沙箱账号 首先什么是沙箱账号&#xff1f; 沙箱账号是指在支付宝沙箱环境中创建的测试账户&#xff0c;用于模拟真实的支付流程…

The 2022 ICPC Asia Xian Regional Contest

题目顺序大致按照难度排序。 F. Hotel 现在酒店中有单人间和双人间&#xff0c;价格分别是c1&#xff0c;c2&#xff0c;现在有n个队&#xff0c;每队三个人&#xff0c;性别分别用字母表示&#xff0c;当两个人性别相同且在同一个队时&#xff0c;他们可以住在双人间中。求最…

【跑跑Github开源项目系列】基于YOLO和Streamlit的车辆识别系统demo

【跑跑Github开源项目系列】基于YOLO和Streamlit的车辆识别系统demo写在前面环境配置创建虚拟环境安装库项目运行写在前面 相信很多朋友跟我一样在github等平台上偷代码 (读书人的事怎么能叫偷呢) 的时候会发现伟大且无私的作者虽然开源了代码但是readme文件该写的没写&#x…

2023TYUT移动应用软件开发程序设计和填空

目录 程序设计 程序设计1&#xff1a;根据要求设计UI,补充相应布局文件&#xff0c;即.xml文件 程序设计2&#xff1a;根据要求,补充Activity.java文件 程序填空 说明&#xff1a; 程序设计 程序设计1&#xff1a;根据要求设计UI,补充相应布局文件&#xff0c;即.xml文件…

【C++初阶】第十篇:list模拟实现

文章目录一、list的模拟实现三个类及其成员函数接口总览结点类的模拟实现迭代器类的模拟实现迭代器类的模板参数说明迭代器operator->的重载迭代器模拟实现代码list的模拟实现无参构造函数带参构造拷贝构造函数赋值运算符重载函数析构函数begin和endinserteraselist的迭代器…

WordPress添加阿里云OSS对象云储存配置教程

背景&#xff1a;随着页面文章增多&#xff0c;内置图片存储拖连网站响应速度&#xff0c;这里对我来说主要是想提升速度 目的&#xff1a;使用第三方云存储作为图片外存储(图床)&#xff0c;这样处理可以为服务器节省很多磁盘空间&#xff0c;在网站搬家的时候减少文件迁移的工…

【数据结构】堆(笔记总结)

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前学习C和算法 ✈️专栏&#xff1a;数据结构 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你有帮助的话 欢迎 评论&#x1f4ac; 点赞&…

MySQL--数据库基础--0406

目录 1.什么是数据库&#xff1f; 2. 基本使用 2.1 连接服务器 2.2 数据库的操作在Linux中的体现 2.3 使用案例 3.服务器&#xff0c;数据库&#xff0c;表关系 4.数据逻辑存储 5.SQL的分类 6.存储引擎 1.什么是数据库&#xff1f; 数据库和文件 文件或者数据库&…

OK-MX93开发板-实现Web页面无线点灯

上篇文章&#xff1a;i.MX9352——介绍一款多核异构开发板&#xff0c;介绍了OK-MX9352开发板的基础硬件功能。 本篇来使用OK-MX9352开发板&#xff0c;通过Web界面进行点灯测试&#xff0c;最终的效果如下&#xff1a; 在进行代码编写之前&#xff0c;先在Ubuntu虚拟机上把这…

对比损失Contrastive Loss(CVPR 2006)原理解析

paper&#xff1a;http://yann.lecun.com/exdb/publis/pdf/hadsell-chopra-lecun-06.pdf 本文提出的对比损失contrastive loss被广泛应用于自监督模型中&#xff0c;但最初对比损失是作为一个特征降维方法而提出的。 摘要 降维是学习一种映射关系&#xff0c;通过这种映射关…

day10 线程池及gdb调试多线程

目录 线程池的概念 概念&#xff1a; 必要性&#xff1a; 线程池的基本结构&#xff1a; 线程池的实现 完整代码 线程的GDB调试 线程池的概念 概念&#xff1a; 通俗的讲就是一个线程的池子&#xff0c;可以循环的完成任务的一组线程集合&#xff1b; 必要性&#xff…