pta 实验九 类库和标准库 C++

编程题

7-1 对称排序

分数 14

全屏浏览

作者 李廷元

单位 中国民用航空飞行学院

你供职于由一群丑星作为台柱子的信天翁马戏团。你刚完成了一个程序编写,它按明星们姓名字符串的长度非降序(即当前姓名的长度至少与前一个姓名长度一样)顺序输出他们的名单。然而,你的老板不喜欢这种输出格式,提议输出的首、尾名字长度较短,而中间部分长度稍长,显得有对称性。老板说的具体办法是对已按长度排好序的名单逐对处理,将前者放于当前序列的首部,后者放在尾部。如输入样例中的第一个案例,Bo和Pat是首对名字,Jean和Kevin是第二对,余此类推。

输入格式:

输入包含若干个测试案例。每个案例的第一行含一个整数n(n>=1),表示名字串个数。接下来n行每行为一个名字串,这些串是按长度排列的。名字串中不包含空格,每个串至少包含一个字符。n=0为输入结束的标志。

输出格式:

对每一个测试案例,先输出一行“Set n”,其中n从1开始取值,表示案例序号。接着是n行名字输出,如输出样例所示。

输入样例:

7
Bo
Pat
Jean
Kevin
Claude
William
Marybeth
6
Jim
Ben
Zoe
Joey
Frederick
Annabelle
5
John
Bill
Fran
Stan
Cece
0

输出样例:

SET 1
Bo
Jean
Claude
Marybeth
William
Kevin
Pat
SET 2
Jim
Zoe
Frederick
Annabelle
Joey
Ben
SET 3
John
Fran
Cece
Stan
Bill

#include<iostream>
#include<algorithm>
#include<string>
#include<vector>
using namespace std;
int main()
{int size;int i,j=1;cin>>size;
while(size){cout<<"SET "<<j++<<endl;string s;vector<string> v;for(i=0;i<size;i++){cin>>s;v.push_back(s);}for(i=0;i<size;i=i+2)cout<<v[i]<<endl;if(size%2==0)  i=size-1;else i=size-2;for(;i>0;i=i-2)cout<<v[i]<<endl;cin>>size;}return 0;
}

7-2 h0100. 字符串连接

作者 黄正鹏

单位 贵州工程应用技术学院

一种语言是一个字符串组成的集合。两种语言的拼接是在第一种语言的字符串的结尾处拼接第二种语言的字符串而构成的所有字符串的集合。

• 例如,如果给出两种语言 A 和 B :

• A = {cat, dog, mouse} ;

• B = {rat, bat} ;

• 则 A 和 B 的连接是:

• C = {catrat, catbat, dograt, dogbat, mouserat, mousebat} 。

• 给出两种语言,请您计算两种语言拼接所产生的字符串的数目。

输入格式:

输入有多个测试用例。输入的第一行给出测试用例的数目 T ( 1≤T≤25 )。接下来给出 T 个测试用例。每个测试用例的第一行给出两个整数, M 和N ( M, N < 1500 ),是每种语言中字符串的数量。然后, M 行给出第一种语言的字符串;接下来的 N 行给出了第二种语言的字符串。本题设定字符串仅由小写字母( 'a' 到 'z' )组成,长度小于 10 个字符,并且每个字符串在一行中给出,没有任何前导或尾随的空格。
输入语言中的字符串可能不会被排序,并且不会有重复的字符串。

输出格式:

对于每个测试用例,输出一行。每个测试用例的输出是以测试用例的序列号开始,然后给出在第一种语言的字符串之后拼接第二种语言中的字符串所产生的字符串数。

输入样例:

2
3 2
cat
dog
mouse
rat
bat
1 1
abc
cab

输出样例:

Case 1: 6
Case 2: 1

#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{int T;cin>>T;int M,N;vector<string> v;string s;for(int i=0;i<T;i++){cin>>M>>N;for(int j=0;j<M+N;j++){cin>>s;v.push_back(s);}cout<<"Case "<<i+1<<": "<<M*N<<endl;}return 0;
}

7-3 笨小猴

作者 CCF-NOI

单位 成都信息工程大学

笨小猴的词汇量很少,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!

这种方法的具体描述如下:假设max是单词中出现次数最多的字母的出现次数,min是单词中出现次数最少的字母的出现次数,如果max-min是一个质数,那么笨小猴就认为这是个Lucky Word,这样的单词很可能就是正确的答案。

输入格式:

一个单词,其中只可能出现小写字母,并且长度小于100。

输出格式:

共两行,第一行是一个字符串,假设输入的的单词是Lucky Word,那么输出“Lucky Word”,否则输出No Answer

第二行是一个整数,如果输入单词是Lucky Word,输出max-min的值,否则输出0。

输入样例1:

error

输出样例1:

Lucky Word
2

输入样例2:

olympic

输出样例2:

No Answer
0

#include<iostream>
#include<cstring>
#include<map>
using namespace std;
int f(int num){if(num<=1) return 0;for(int i=2;i*i<=num;i++){if(num%i==0)return 0;}return 1;
}
int main(){string word;cin>>word;map<char,int> count;for(char i:word)count[i]++;int max=0,min=100;for(auto i= count.begin(); i!= count.end(); ++i){max=std::max(max,i->second);min=std::min(min,i->second);}if(f(max-min)){cout<<"Lucky Word"<<endl;cout<<max-min<<endl;}else{cout<<"No Answer"<<endl;cout<<"0"<<endl;}return 0;
}

 

7-4 字符串排序--string类的使用

分数 14

全屏浏览

作者 李廷元

单位 中国民用航空飞行学院

先输入你要输入的字符串的个数。然后换行输入该组字符串。每个字符串以回车结束,每个字符串不多于一百个字符。
如果在输入过程中输入的一个字符串为“stop”,也结束输入。
然后将这输入的该组字符串按每个字符串的长度,由小到大排序,按排序结果输出字符串。如果存在多个字符串长度相同,则按照原始输入顺序输出。

输入格式:

字符串的个数,以及该组字符串。每个字符串以‘\n’结束。如果输入字符串为“stop”,也结束输入.

输出格式:

可能有多组测试数据,对于每组数据,
将输入的所有字符串按长度由小到大排序输出(如果有“stop”,不输出“stop”)。

输入样例:

4
faeruhyytrjh tjytj
hsrthts   hjnshtgfhs
stop
3
htrskbns
bsartanjsf tyjndyt
nsr jj jtey

输出样例:

faeruhyytrjh tjytj
hsrthts   hjnshtgfhs
htrskbns
nsr jj jtey
bsartanjsf tyjndyt

###提示:
根据输入的字符串个数来动态分配存储空间(采用new()函数)。每个字符串会少于100个字符。
测试数据有多组,注意使用while()循环输入。

###来源:
数据结构高分笔记

#include<bits/stdc++.h>
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;struct stu {string s;int id;
};bool cmp(stu a,stu b) {if(a.s.length()==b.s.length()) return a.id>b.id;else return a.s.length()<b.s.length();
}
int main() {int n;string s;vector<stu> v;while(cin>>n) { //(cin >> n)!=EOFgetchar();while(n--) {getline(cin,s);if(s=="stop") break;stu t;t.id=n;t.s=s;v.push_back(t);}sort(v.begin(),v.end(),cmp);for(int i=0; i<v.size(); i++) {cout<<v[i].s<<endl;}v.clear();}return 0;
}

 

7-5 办事大厅排队

分数 14

全屏浏览

作者 吴云鹏

单位 郑州大学

在郑州大学综合办事大厅,每天陆陆续续有很多人来排队办事。现在你能否写程序帮助老师时刻了解当前办理业务的情况。

请同学们学习C++ STL中 list相关内容后,编程实践。

输入格式:

第一行一个数字N,表示排队信息或者查询信息条目的数量。

以下N行,每行的内容有以下3种情况

(1) in name 表示名字为name的人员新来到办事大厅,排在队伍的最后。(in和name间存在一个空格,name是名字对应字符串,长度不超过10)。

(2) out 表示当前排在最前面的人已经办理完业务,离开了。

(3) q 表示一次查询,请输出当前正在办理业务的人,也就是队伍的第1个人。如果当前无人办理业务,则输出“NULL”,不包括引号。

输出格式:

请根据以上信息,每次遇到查询时,对应一行输出。如果这时队伍有人,则输出第一个人的姓名,否则输出NULL。

输入样例:

5
in A
out
q
in B
q

输出样例:

在这里给出相应的输出。例如:

NULL
B

#include <iostream>
#include <list>
#include <string>int main() {int n;std::cin >> n;std::list<std::string> queue;for (int i = 0; i < n; i++) {std::string operation, name;std::cin >> operation;if (operation == "in") {std::cin >> name;queue.push_back(name);} else if (operation == "out") {if (!queue.empty()) {queue.pop_front();}} else if (operation == "q") {if (queue.empty()) {std::cout << "NULL" << std::endl;} else {std::cout << queue.front() << std::endl;}}}return 0;
}

7-6 数气球

分数 15

全屏浏览

作者 苏国煜

单位 闽江学院

题目背景

天空上有n个气球,第i个气球的颜色为colori​(为全由小写字母组成的字符串)
请你数出每种颜色的气球的数量,并按照颜色出现的先后顺序进行排序输出。

输入格式:

测试数据有T组(1≤T≤100)。
对于每组样例,第一行一个整数n (1≤n≤1×105)表示气球个数。
接下来接下来n行,每行一个仅有小写字母构成的字符串colori​ (1≤∣colori​∣≤50),代表气球的颜色。

输出格式:

对于每个样例,一种颜色的气球统计结果一行,先输出颜色,用空格隔开后输出该种颜色的气球的数量。

输入样例:

在这里给出一组输入。例如:

2
3
red
red
blue
4
ovo
vvv
ov
ovo

输出样例:

在这里给出相应的输出。例如:

red 2
blue 1
ovo 2
vvv 1
ov 1

#include <algorithm>
#include <iostream>
#include <map>
#include <queue>
#define AUTHOR "HEX9CF"
using namespace std;map<string, int> m1;
queue<string> q1;int main() {int t;cin >> t;while (t--) {m1.clear();int n;cin >> n;while (n--) {string col;cin >> col;if (!m1.count(col)) {q1.push(col);}m1[col]++;}while (q1.size()) {string col = q1.front();cout << col << " " << m1[col] << endl;q1.pop();}}return 0;
}

 

7-7 利用STL比较数据大小并排序

分数 15

全屏浏览

作者 孙杰

单位 青岛大学

本题目要求读入n个整数(输入数字个数根据输入时随机确定,以输入一个非数字的值作为输入结束标志),利用STL比较数据大小并排序(由小到大升序),然后输出排序后的数据。

输入格式:

输入在一行中依次输入整数值,每个数字之间用空格分隔,输入数字个数根据输入时随机确定,以输入一个非数字的值作为输入结束标志。

输出格式:

先输出一段提示“从标准设备读入数据,直到输入是非整型数据为止”,在输入一组数字后,输出排序后的数字,在一行中由小到大依次输出所有值,数字之间用空格分隔。

输入样例:

10 3 -2 8 20 -9 e

输出样例:

从标准设备读入数据,直到输入是非整型数据为止-9 -2 3 8 10 20

#include <iostream>
#include <vector>
#include <sstream>
#include <algorithm>int main() {std::cout << "从标准设备读入数据,直到输入是非整型数据为止" << std::endl;std::vector<int> numbers;std::string line;getline(std::cin, line);std::istringstream iss(line);int num;while (iss >> num) {numbers.push_back(num);}std::sort(numbers.begin(), numbers.end());for (const auto& n : numbers) {std::cout << " "<<n;}std::cout << std::endl;return 0;
}

7-8 部分排序

分数 30

全屏浏览

作者 周强

单位 青岛大学

对于一组数据,我们可以只对原先处在中间位置的那些元素进行排序。

输入格式:

在一行内输入n r a1 a2 ... an

其中,不大于200的正整数n表示该组数据的个数;不大于200的非负整数r表示该组数据两端各自留有r个数不参与排序,若r+r>=n,则该组数据无需排序。

整数a1 a2 ... an是该组的n个数据,且都在8位以内。

输出格式:

排序之后的序列,元素之间用一个空格间隔,最后一个元素之后不加空格。

输入样例:

5 1 6 5 4 3 2

输出样例:

6 3 4 5 2
#include <iostream>
#include <bits/stdc++.h>
using namespace std;int main()
{int n,r,tmp;vector<int> v;cin>>n>>r;for(int i=0;i<n;i++){cin>>tmp;v.push_back(tmp);}if(r+r<n){sort(v.begin()+r,v.end()-r);}cout<<v[0];for(int i=1;i<v.size();i++){cout<<" "<<v[i];}return 0;
}

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

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

相关文章

豆瓣电影top250网页爬虫

设计思路 选择技术栈:确定使用Python及其相关库&#xff0c;如requests用于发送网络请求&#xff0c;获取网址&#xff0c;用re(正则表达式)或BeautifulSoup用于页面内容解析。设计流程:规划爬虫的基本流程&#xff0c;包括发起请求、接受响应、解析内容、存储数据等环节。模块…

performance_schema.events_statements_current

performance_schema.events_statements_current 是 MySQL 中 performance_schema 库中的一个表&#xff0c;它用于显示当前正在执行的 SQL 语句的性能事件。这个表提供了关于当前正在运行的 SQL 语句的实时信息&#xff0c;允许数据库管理员和开发者监控和分析 SQL 语句的性能。…

小程序中用font-spider压缩字体后,字体没效果(解决办法)

因为项目中需要引入外部字体&#xff0c;有两种方案&#xff0c; 第一是把字体下载到本地&#xff0c; 第二种是cdn请求服务器放字体的地址 但是小程序是有大小限制的&#xff0c;所以必须要压缩字体大小&#xff0c;这时候有些人就说了&#xff0c;那把字体放在服务器上&a…

【人工智能】—基于K-Means算法商场顾客聚类实战教程

在这篇博文之前一直是给大家做机器学习有监督学习教程&#xff0c;今天来一篇无监督学习教程。 K-Means算法是一种基于中心的聚类方法&#xff0c;它试图找到数据点的K个簇&#xff0c;使得簇内的数据点尽可能相似&#xff0c;而簇间的数据点尽可能不同。下面是K-Means算法的详…

Spring Boot集成tablesaw插件快速入门

1 什么是tablesaw&#xff1f; Tablesaw是一款Java的数据可视化库&#xff0c;主要包括两部分&#xff1a; 数据解析库&#xff0c;主要用于加载数据&#xff0c;对数据进行操作(转化&#xff0c;过滤&#xff0c;汇总等)&#xff0c;类比Python中的Pandas库&#xff1b; 数据…

未定义行为总结

解引用空指针&#xff0c;例如解引用空的this指针、解引用空的函数指针 下面的代码尽管能正常运行&#xff0c;但c->fun()等价于(*c).fun()&#xff0c;也就是对空指针解引用了 #include <iostream> struct C {void fun(){std::cout<<"fun"<<st…

苹果cms10影视网整站源码下载/苹果cms模板MXone Pro自适应影视电影网站模板

下载地址&#xff1a;苹果cms10影视网整站源码下载/苹果cms模板MXone Pro自适应影视电影网站模板 模板带有夜间模式、白天晚上自动切换&#xff0c;有观影记录、后台设置页。全新UI全新框架&#xff0c;加载响应速度更快&#xff0c;seo更好&#xff0c;去除多余页面优化代码。…

Ubuntu 22.04 下 CURL(C++) 实现分块上传/下载文件源码

为了帮助大家理解代码&#xff0c;先介绍文件上传/下载流程&#xff1a; 上传文件流程说明&#xff1a;首先向服务器 restful api 接口 /common发送 Post 请求 &#xff0c;服务器端返回 project guid。读取本地文件&#xff0c;按照给定 chunk_size&#xff08;例如 10240 by…

java中函数式编程apply的用法实例?

在Java中&#xff0c;函数式编程的概念主要体现在Lambda表达式、函数接口以及Stream API的使用上。"apply"这个术语通常与函数式接口中的抽象方法关联&#xff0c;比如Function<T, R>接口中的apply方法。这个方法接收一个类型为T的输入参数&#xff0c;并返回一…

从零开始搭建创业公司全新技术栈解决方案

从零开始搭建创业公司全新技术栈解决方案 关于猫头虎 大家好&#xff0c;我是猫头虎&#xff0c;别名猫头虎博主&#xff0c;擅长的技术领域包括云原生、前端、后端、运维和AI。我的博客主要分享技术教程、bug解决思路、开发工具教程、前沿科技资讯、产品评测图文、产品使用体…

Ollma本地大模型沉浸式翻译【403报错解决】

最终效果 通过Chrome的 沉浸式翻译 插件&#xff0c;用OpenAI通用接口调用本地的Ollma上的模型&#xff0c;实现本地的大模型翻译文献。 官方文档指导的Ollama的配置&#xff1a;一定要配置环境变量&#xff0c;否则会出现【403报错】

GoogLeNet(InceptionV3)模型算法

GoogLeNet 团队在给出了一些通用的网络设计准则&#xff0c;以期望在不提高网络参数 量的前提下提升网络的表达能力&#xff1a; 避免特征图 (feature map) 表达瓶颈&#xff1a;从理论上讲&#xff0c;尺寸 (seize) 才包含了相关结构等重要因素&#xff0c;维度(channel) 仅仅…

torch.optim 之 Algorithms (Implementation: for-loop, foreach, fused)

torch.optim的官方文档 官方文档中文版 一、Implementation torch.optim的官方文档在介绍一些optimizer Algorithms时提及它们的implementation共有如下三个类别&#xff1a;for-loop, foreach (multi-tensor), and fused。 Chat-GPT对这三个implementation的解释是&#xf…

账号和权限的管理

文章目录 管理用户账号和组账号用户账号的分类超级用户普通用户程序用户 UID&#xff08;用户id)和(组账号)GIDUID用户识别号GID组标识号 用户账号文件添加用户账号设置/更改用户口令 管理用户账号和组账号 用户账号的分类 超级用户 root 用户是 Linux 操作系统中默认的超级…

React state 更新时机以及强制更新

设置 state 只会为下一次渲染变更 state 的值 一个 state 变量的值永远不会在一次渲染的内部发生变化 React 会使 state 的值始终"固定"在一次渲染的各个事件处理函数内部 React 会等到事件处理函数中的所有代码都运行完毕再处理 state 更新 用 flushSync 可以同步更…

PostgreSQL查询用户

在 PostgreSQL 中&#xff0c;可以通过查询系统表来确定当前用户是否是超级管理员&#xff08;超级用户&#xff09;。具体来说&#xff0c;可以使用 pg_roles 系统表&#xff0c;该表包含数据库中所有角色的信息。 以下是查询当前用户是否是超级用户的 SQL 语句&#xff1a; …

第N5周:调用Gensim库训练Word2Vec模型

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制&#x1f680; 文章来源&#xff1a;K同学的学习圈子 目录 本周任务: 1.安装Gensim库 2.对原始语料分词 3.停用词 4.训练Woed2Vec模型 …

办展览如何盈利?论办展的商业模式

想要弄清楚办展览怎么赚钱这个问题&#xff0c;我可以来说说。 首先来说说展览收益的大头&#xff1a;门票收入。 这个其实是可以大致预测的。简单来说&#xff0c;就是用流量乘以到店率。 但别忘了&#xff0c;这背后得有合适的展览定位、方便的展览场地和合理的票价。 说…

封禁SSH登录的IP

在公网上开放SSHD服务时常被黑客扫描&#xff0c;可用以下方式封禁其IP&#xff1a; 1. 在/etc/hosts/deny中加&#xff1a;sshd: /etc/sshd.deny.hostguard echo "sshd: /etc/sshd.deny.hostguard" > /etc/hosts/deny 2. 然后将/var/log/secure中探测密码的远…

小林图解系统-三、操作系统结构

Linux 内核 vs Windows 内核 内核 作为应用连接硬件设备的桥梁&#xff0c;保证应用程序只需要关心与内核交互&#xff0c;不需要关心硬件的细节 内核具备四个基本能力&#xff1a; 管理进程、线程&#xff0c;决定哪个进程、线程使用CPU&#xff0c;也就是进程调度的能力&a…