PAT (Basic Level) Practice 乙级1041-1045

news2025/1/23 6:03:44
制作不易,大家的点赞和关注就是我更新的动力!

由于这些题全是大一寒假刷的,部分还是c语言,部分的解题方法比较复杂,希望大家体谅。有问题欢迎大家在评论区讨论,有不足也请大家指出,谢谢大家!

温馨提示:可以点目录跳转到相应题目哦。

1041 考试座位号 

分数 15

作者 CHEN, Yue

单位 浙江大学

每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。

输入格式:

输入第一行给出一个正整数 N(≤1000),随后 N 行,每行给出一个考生的信息:准考证号 试机座位号 考试座位号。其中准考证号由 16 位数字组成,座位从 1 到 N 编号。输入保证每个人的准考证号都不同,并且任何时候都不会把两个人分配到同一个座位上。

考生信息之后,给出一个正整数 M(≤N),随后一行中给出 M 个待查询的试机座位号码,以空格分隔。

输出格式:

对应每个需要查询的试机座位号码,在一行中输出对应考生的准考证号和考试座位号码,中间用 1 个空格分隔。

输入样例:

4
3310120150912233 2 4
3310120150912119 4 1
3310120150912126 1 3
3310120150912002 3 2
2
3 4

输出样例:

3310120150912002 2
3310120150912119 1

代码: 

#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <cmath>
struct st
{
	long long z,s,k;	
};
using namespace std;
int main()
{
    int n,i,j,m,ss;
    cin>>n;
    st a[n+2];
    for(i=0;i<n;i++)
    {
    	cin>>a[i].z >>a[i].s >>a[i].k ;
	}
	cin>>m;
	for(i=0;i<m;i++)
	{
		cin>>ss;
		for(j=0;j<n;j++)
		{
			if(a[j].s ==ss){
				cout<<a[j].z <<" "<<a[j].k <<endl;break;
			}
		}
	}
    return 0;
}

 1042 字符统计

分数 20

作者 CHEN, Yue

单位 浙江大学

请编写程序,找出一段给定文字中出现最频繁的那个英文字母。

输入格式:

输入在一行中给出一个长度不超过 1000 的字符串。字符串由 ASCII 码表中任意可见字符及空格组成,至少包含 1 个英文字母,以回车结束(回车不算在内)。

输出格式:

在一行中输出出现频率最高的那个英文字母及其出现次数,其间以空格分隔。如果有并列,则输出按字母序最小的那个字母。统计时不区分大小写,输出小写字母。

输入样例:

This is a simple TEST.  There ARE numbers and other symbols 1&2&3...........

输出样例:

e 7

代码: 

#include <iostream>
#include <string>
#include <algorithm>
#include <cstring>
#include <vector>
#include <cmath>
using namespace std;
int main()
{
	int cnt[128]={0},max=0;
    char c;
    do{
        c=getchar();
        if(c>='A'&&c<='Z') c+=32;
        if(c>='a'&&c<='z') cnt[c]++;
    }while(c!='\n');
    for(int i='a';i<='z';i++){
        if(cnt[max]<cnt[i]) max=i;
    }
    printf("%c %d\n",max,cnt[max]);
	return 0;
}

 1043 输出PATest

分数 20

作者 CHEN, Yue

单位 浙江大学

给定一个长度不超过 104 的、仅由英文字母构成的字符串。请将字符重新调整顺序,按 PATestPATest.... 这样的顺序输出,并忽略其它字符。当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按 PATest 的顺序打印,直到所有字符都被输出。

输入格式:

输入在一行中给出一个长度不超过 104 的、仅由英文字母构成的非空字符串。

输出格式:

在一行中按题目要求输出排序后的字符串。题目保证输出非空。

输入样例:

redlesPayBestPATTopTeePHPereatitAPPT

输出样例:

PATestPATestPTetPTePePee

代码: 

#include <iostream>
#include <string>
#include <algorithm>
#include <cstring>
#include <vector>
#include <cmath>
using namespace std;
int main()
{
	string a;
	cin>>a;
	int i,len=a.size();
	int PP=0,AA=0,TT=0,ee=0,ss=0,tt=0;
	for(i=0;i<len;i++)
	{
		if(a[i]=='P') PP++;
		else if(a[i]=='A') AA++;
		else if(a[i]=='T') TT++;
		else if(a[i]=='e') ee++;
		else if(a[i]=='s') ss++;
		else if(a[i]=='t') tt++;
	}
	for(i=0;;i++)
	{
		if(PP==0&&AA==0&&TT==0&&ee==0&&ss==0&&tt==0)
		{
			break;
		}
		if(PP) cout<<"P",PP--;
		if(AA) cout<<"A",AA--;
		if(TT) cout<<"T",TT--;
		if(ee) cout<<"e",ee--;
		if(ss) cout<<"s",ss--;
		if(tt) cout<<"t",tt--;
	}
	
	return 0;
}

 1044 火星数字

分数 20

作者 CHEN, Yue

单位 浙江大学

火星人是以 13 进制计数的:

  • 地球人的 0 被火星人称为 tret。
  • 地球人数字 1 到 12 的火星文分别为:jan, feb, mar, apr, may, jun, jly, aug, sep, oct, nov, dec。
  • 火星人将进位以后的 12 个高位数字分别称为:tam, hel, maa, huh, tou, kes, hei, elo, syy, lok, mer, jou。

例如地球人的数字 29 翻译成火星文就是 hel mar;而火星文 elo nov 对应地球数字 115。为了方便交流,请你编写程序实现地球和火星数字之间的互译。

输入格式:

输入第一行给出一个正整数 N(<100),随后 N 行,每行给出一个 [0, 169) 区间内的数字 —— 或者是地球文,或者是火星文。

输出格式:

对应输入的每一行,在一行中输出翻译后的另一种语言的数字。

输入样例:

4
29
5
elo nov
tam

输出样例:

hel mar
may
115
13

代码: 

#include <iostream>
#include <string>
#include <algorithm>
#include <cstring>
#include <vector>
#include <cmath>
#define ll long long 
using namespace std;
int main()
{
    string low[] = {"","jan","feb","mar","apr","may","jun","jly","aug","sep","oct","nov","dec"};
    string high[] = {"","tam","hel","maa","huh","tou","kes","hei","elo","syy","lok","mer","jou"};
    int n;
    cin >> n;
    getchar();
    string s;
    for(int i = 0; i < n; i++)
    {
        getline(cin, s);
        if(s[0] >= '0' && s[0] <= '9')//数字转火星文
        {
            int num = stoi(s);//stoi()将字符串变为数字 
            if(num == 0) cout << "tret" << endl;
            else
            {
                if(num % 13 == 0) cout << high[num/13] << endl;//能被13整除的
                else//其余情况,又分小于13和大于13的情况
                {
                    if(num < 13) cout << low[num%13] << endl;
                    else if(num > 13) cout << high[num/13] << " " << low[num%13]<<endl;
                }
            }
        }
        else//火星文转数字
        {
            if(s.length() == 4) cout << 0 << endl;//0 
            else if(s.length() == 3)
            {
                for(int i = 1; i <= 12; i++)
                {
                    if(low[i] == s)
                    {
                        cout << i << endl;
                        break;
                    }
                    else if(high[i] == s)
                    {
                        cout << 13 * i << endl;
                        break;
                    }
                }
            }
            else
            {
                int sum = 0;
                string s1 = s.substr(0, 3);//s.substr表示截取字符串-> 从0截取到3 
                string s2 = s.substr(4, 7);
                for(int i = 1; i <= 12; i++)
                {
                    if(high[i] == s1) sum += 13 * i;
                    if(low[i] == s2) sum += i;
                }
                cout << sum << endl;
            }
        }
        
    }
 
    return 0;
}

 1045 快速排序

分数 25

作者 CAO, Peng

单位 Google

著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。 给定划分后的 N 个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元?

例如给定 N=5, 排列是1、3、2、4、5。则:

  • 1 的左边没有元素,右边的元素都比它大,所以它可能是主元;
  • 尽管 3 的左边元素都比它小,但其右边的 2 比它小,所以它不能是主元;
  • 尽管 2 的右边元素都比它大,但其左边的 3 比它大,所以它不能是主元;
  • 类似原因,4 和 5 都可能是主元。

因此,有 3 个元素可能是主元。

输入格式:

输入在第 1 行中给出一个正整数 N(≤105); 第 2 行是空格分隔的 N 个不同的正整数,每个数不超过 109。

输出格式:

在第 1 行中输出有可能是主元的元素个数;在第 2 行中按递增顺序输出这些元素,其间以 1 个空格分隔,行首尾不得有多余空格。

输入样例:

5
1 3 2 4 5

输出样例:

3
1 4 5

代码: 

#include <iostream>
#include <string>
#include <algorithm>
#include <cstring>
#include <vector>
#include <cmath>
using namespace std;
int main()
{
	long long n,i,j,k,max=0;
	vector<int>v1;
	vector<int>v;
	vector<int>v2;
	cin>>n;
	long long cn=0;
	for(i=0;i<n;i++)
	{
		cin>>k;
		v1.push_back(k);
		v.push_back(k);
	} j=0;
	sort(v.begin(),v.end());
	for(i=0;i<n;i++)
	{
		if(v1[i]==v[i]&&v1[i]>max) {
			cn++;
			v2.push_back(v[i]);
		}
		if(v1[i]>max) {
			max=v1[i];
		}
		
	}
	//if(cn==0) {
	//	cout<<0;
	//	cout<<endl;
	//}
	cout<<cn<<endl;
	sort(v2.begin(),v2.end());
	for(i=0;i<v2.size();i++)
	{
		cout<<v2[i];
		if(i!=v2.size()-1)
		{
			cout<<" ";
		}
	}
	cout<<endl;
	return 0;
}

后续题目会尽快更新! 

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

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

相关文章

(2)STM32 USB设备开发-USB虚拟串口

例程&#xff1a;STM32USBdevice: 基于STM32的USB设备例子程序 - Gitee.com 本篇为USB虚拟串口教程&#xff0c;没有知识&#xff0c;全是实操&#xff0c;按照步骤就能获得一个STM32的USB虚拟串口。本例子是在野火F103MINI开发板上验证的&#xff0c;如果代码中出现一些外设的…

ASP .NET Core 学习(.NET9)部署(一)windows

在windows部署 ASP .NET Core 的时候IIS是不二选择 一、IIS安装 不论是在window7 、w10还是Windows Server&#xff0c;都是十分简单的&#xff0c;下面以Windows10为例 打开控制面版—程序—启用或关闭Windows功能 勾选图中的两项&#xff0c;其中的子项看需求自行勾选&am…

Java并发编程面试题:线程池Fork/Join(19题)

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…

fyne 选项卡设计

用户界面的设计至关重要&#xff0c;它直接影响着用户体验。选卡设计作为一种常见的界面布局方式&#xff0c;能够有效地组织和展示信息&#xff0c;使用户能够方便快捷地浏览和操作。 Fyne 是一个用 Go 语言编写的跨平台 GUI 框架&#xff0c;它提供了丰富的组件和功能&#…

MySQL——主从同步

提醒&#xff1a;进行配置时&#xff0c;需要确保一主两从的操作系统、MySQL版本一致&#xff0c;否则将出现问题 环境介绍 服务器IP主服务器172.25.254.10从服务器-1172.25.254.11从服务器-2172.25.254.12 配置 # 快速配置&#xff0c;选择多重执行&#xff0c;确保版本一…

IDEA中Maven使用的踩坑与最佳实践

文章目录 IDEA中Maven使用的踩坑与最佳实践一、环境配置类问题1. Maven环境配置2. IDEA中Maven配置建议 二、常见问题与解决方案1. 依赖下载失败2. 依赖冲突解决3. 编译问题修复 三、效率提升技巧1. IDEA Maven Helper插件使用2. 常用Maven命令配置3. 多模块项目配置4. 资源文件…

VIVADO-block desgn 中时钟连线报错

问题描述 1.自定义的IP核由于封装不规范&#xff0c;输出的时钟引脚缺少该时钟的相关信息 正常时钟引脚属性 异常的时钟引脚属性 2.run connection automation 中无法找到这种缺少信息的时钟源 3.axi_clk与axi interconnect时钟频率不匹配 解决方案&#xff1a; 1.用BUFG将缺少…

CSDN 博客之星 2024:默语的技术进阶与社区耕耘之旅

CSDN 博客之星 2024&#xff1a;默语的技术进阶与社区耕耘之旅 &#x1f31f; 默语&#xff0c;是一位在技术分享与社区建设中坚持深耕的博客作者。今年&#xff0c;我有幸再次入围成为 CSDN 博客之星TOP300 的一员&#xff0c;这既是对过往努力的肯定&#xff0c;也是对未来探…

BUUCTF_Web(UPLOAD COURSE 1)

打开靶机&#xff0c;发现需要上传文件&#xff0c;尝试一句话木马蚁剑链接 一句话木马 【基本原理】利用文件上传漏洞&#xff0c;往目标网站中上传一句话木马&#xff0c;然后你就可以在本地通过中国菜刀chopper.exe即可获取和控制整个网站目录。表示后面即使执行错误&#…

车载软件架构 --- CP和AP作为中央计算平台的软件架构双核心

我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 简单&#xff0c;单纯&#xff0c;喜欢独处&#xff0c;独来独往&#xff0c;不易合同频过着接地气的生活…

docker ubuntu:20.04构建c++ grpc环境

由c grpc必须源码编译&#xff0c;ubuntu版本不同可能出现的问题也不同&#xff0c;这里分享下我的构建过程。 我是vscode结合docker去安装c虚拟环境&#xff0c;我不想污染本机环境。 vscode的插件Dev Containers Dockerfile如下(如果单纯是ubuntu环境构建&#xff0c;可忽略该…

PV-RCNN、PV-RCNN++ 网络结构

paper&#xff1a; PV-RCNN https://arxiv.org/abs/1912.13192PV-RCNN https://arxiv.org/abs/2102.00463 github&#xff1a;使用OpenPCDet进行训练测试 https://github.com/open-mmlab/OpenPCDet PV-RCNN 简介 PV-RCNN的提出是想要综合 point-based 和 voxel-based 3D目…

认识c++

文章目录 1namespace 写博客 &#xff0c;做作业 笔记很关键 1namespace ::域作用限定域 局部域>全局域>命名空间域&#xff08;展开了命名空间域or指定访问命名空间域&#xff09; 不要轻易展开 可以这样解决 方案一 方案二 using namespace std; 直接展开会有风…

接口 V2 完善:基于责任链模式、Canal 监听 Binlog 实现数据库、缓存的库存最终一致性

&#x1f3af; 本文介绍了一种使用Canal监听MySQL Binlog实现数据库与缓存最终一致性的方案。文章首先讲解了如何修改Canal配置以适应订单表和时间段表的变化&#xff0c;然后详细描述了通过责任链模式优化消息处理逻辑的方法&#xff0c;确保能够灵活应对不同数据表的更新需求…

内容中台实施最佳实践解析与应用指南

内容概要 内容中台是一个旨在提升企业内容管理与分发能力的战略性平台&#xff0c;其实施最佳实践对于企业在数字化转型中尤为重要。内容中台的建设&#xff0c;不仅涉及技术层面的架构设计&#xff0c;还需结合组织变革、业务流程优化等多个方面&#xff0c;以实现高效、灵活…

顺序表和链表(详解)

线性表 线性表&#xff08; linear list&#xff09;是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构&#xff0c;常见的线性表&#xff1a;顺序表、链表、栈、队列、字符串... 线性表在逻辑上是线性结构&#xff0c;也就说是连续的一条直线。…

TCP全连接队列

1. 理解 int listen(int sockfd, int backlog) 第二个参数的作用 backlog&#xff1a;表示tcp全连接队列的连接个数1。 如果连接个数等于backlog1&#xff0c;后续连接就会失败&#xff0c;假设tcp连接个数为0&#xff0c;最大连接个数就为1&#xff0c;并且不accept获取连接…

C语言程序环境与预处理—从源文件到执行程序,这里面有怎么的工序?绝对0基础!

正文开始前&#xff0c;我们简单聊上一聊&#xff01; 众所周知&#xff01;编译器的功能非常强大的&#xff0c;我们在编译软件上敲的每一行代码&#xff0c;点击执行&#xff0c;就会输出结果&#xff0c;从代码-->输出结果&#xff0c;这中间经历了怎样的一个过程&#…

第35天:安全开发-JavaEE应用原生反序列化重写方法链条分析触发类类加载

时间轴&#xff1a; 序列化与反序列化图解&#xff1a; 演示案例&#xff1a; Java-原生使用-序列化&反序列化 Java-安全问题-重写方法&触发方法 Java-安全问题-可控其他类重写方法 Java-原生使用-序列化&反序列化 1.为什么进行序列化和反序列化&#xff1…

硬件作品3----STM32F103RCT6最小系统板MCU配置

参考文章&#xff1a;对stm32F103RCT6原理图解析&#xff08;详细&#xff09;-CSDN博客 本想绘制稍微复杂一些的电路&#xff0c;但是出现很多问题&#xff0c;因此先绘制一块最小系统板进行原理、绘制方法的验证。 设计难度&#xff1a;★ 适合人群&#xff1a;初学者 一、…