[iHooya]2023年1月30日作业解析

news/2024/2/21 10:44:55

温度统计
现有一段时间的温度数据,请统计指定温度出现的次数。

输入
第一行一个整数n,表示温度数据的个数。(0 < n ≤ 200) 第二行n个整数,以空格分隔,每个整数表示一个温度,温度的范围大于等于0,小于等于40。 第三行一个整数,表示需要查询的温度t。(0 ≤ t ≤ 40)

输出
输出一个整数,表示温度t出现的次数。

样例输入
10
18 19 21 17 20 18 21 21 22 21
21

样例输出
4

考点:对一维数组操作
核心:判断+计数

#include <bits/stdc++.h>
using namespace std;int main()
{int n;cin >> n;int arr[n];//存一段时间的温度for (int a = 0; a < n; a++)cin >> arr[a];int t, count = 0; //指定的温度,计数器cin >> t; //指定的温度for (int b = 0; b < n; b++){if (arr[b] == t)count++;}cout << count;return 0;
}

序列排序
对于给定的正整数序列,按照每个数的各位数和从大到小排序,各位数和相同的按照本身大小排序,大的在前,小的在后。

输入
第一行1个整数n,表示序列的大小。( 0 < n ≤ 1000) 第二行n个正整数,表示序列的每个数,每个数不大于100000000。

输出
输出按照题目要求排序后的序列

样例输入
6
17 26 9 13 88 10

样例输出
88 9 26 17 13 10

考点:有条件的排序
核心:对数求位数和,判断排序条件

#include <bits/stdc++.h>
using namespace std;
//方法1
bool cmp(int a, int b)//改写sort函数排序规则
{int sum1 = 0, sum2 = 0;while (a != 0) //前一个数字位数求和{sum1 += a % 10;a /= 10;}while (b != 0) //后一个数字位数求和{sum2 += b % 10;b /= 10;}if (sum1 > sum2) //按照每个数的各位数和从大到小排序return true;else if (sum1 == sum2) //各位数和相同的按照本身大小排序,大的在前,小的在后。{if (a >= b)return true;elsereturn false;}else if (sum1 < sum2)return false;
}int main()
{int n;cin >> n;int arr[n];for (int a = 0; a < n; a++)cin >> arr[a];sort(arr, arr + n, cmp);for (int b = 0; b < n; b++)cout << arr[b] << " ";return 0;
}

#include <bits/stdc++.h>
using namespace std;int  jia(int a)//把位数求和封装成一个函数,方便调用
{int sum = 0;while (a != 0){sum += a % 10;a /= 10;}return sum;
}int main()
{int n;cin >> n;int arr[n], sum[n]; //存原本的数,存位数求和后的数for (int a = 0; a < n; a++){cin >> arr[a];sum[a] = jia(arr[a]); //将原本的数经过求和后赋值给求和的数组}for (int a = 0; a < n; a++){for (int b = 0; b < n - a - 1; b++){//按照每个数的各位数和从大到小排序,各位数和相同的按照本身大小排序,大的在前,小的在后。if (sum[b] < sum[b + 1] || (sum[b] == sum[b + 1] && arr[b] < arr[b + 1])){swap(sum[b], sum[b + 1]);swap(arr[b], arr[b + 1]);}}}for (int b = 0; b < n; b++)cout << arr[b] << " ";return 0;
}

单词的长度
输入一行单词序列,相邻单词之间由1个或多个空格间隔,请对应地计算各个单词的长度。注意,如果有标点符号(如连字符,逗号),标点符号算作与之相连的词的一部分。没有被空格间开的符号串,都算作单词。

输入
一行单词序列,最少1个单词,最多300个单词,单词之间用至少1个空格间隔。单词序列总长度不超过1000。

输出
依次输出对应单词的长度,之间以逗号间隔。

样例输入
She was born in 1990-01-02 and from Beijing city.

样例输出
3,3,4,2,10,3,4,7,5

考点:字符串处理
核心:对计数条件判断

#include <bits/stdc++.h>
using namespace std;int main()
{string s;getline(cin, s);int count = 0;for (int a = 0; a < s.length(); a++){if (s[a] != ' ') //没有遇到空格count++;else if (s[a] == ' ' && s[a + 1] != ' '){cout << count << ',';count = 0; //重新计数}}cout << count; //补上最后一个计数结果,后面没有逗号return 0;
}

扫雷游戏地雷数计算
扫雷游戏是一款十分经典的单机小游戏。它的精髓在于,通过已翻开格子所提示的周围格地雷数,来判断未翻开格子里是否是地雷。
现在给出n行m列的雷区中的地雷分布,要求计算出每个非地雷格的周围格地雷数。
注:每个格子周围格有八个:上、下、左、右、左上、右上、左下、右下。

输入
第一行包含两个整数n和m,分别表示雷区的行数和列数。1 <= n <= 100, 1 <= m <= 100。 接下来n行,每行m个字符,‘*’表示相应格子中是地雷,‘?’表示相应格子中无地雷。字符之间无任何分隔符。

输出
n行,每行m个字符,描述整个雷区。若相应格中是地雷,则用‘*’表示,否则用相应的周围格地雷数表示。字符之间无任何分隔符。

样例输入
3 3
??
???
?
?

样例输出
10
221
1
1

考点:对二维数组的操作
核心:对周围方向的判断

在这里插入图片描述
方法1
在这里插入图片描述

方法2
在这里插入图片描述

古代密码
古罗马帝国有一个拥有各种部门的强大政府组织。其中一个部门就是保密服务部门。为了保险起见,在省与省之间传递的重要文件中的大写字母是加密的。当时最流行的加密方法是替换和重新排列。
替换方法是将所有出现的字符替换成其它的字符。有些字符会替换成它自己。例如:替换规则可以是将’A’ 到 'Y’替换成它的下一个字符,将’Z’替换成 ‘A’,如果原词是 “VICTORIOUS” 则它变成 “WJDUPSJPVT”。
排列方法改变原来单词中字母的顺序。例如:将顺序例如将顺序 < 2 1 5 4 3 7 6 10 9 8 > 应用到 “VICTORIOUS” 上,则得到"IVOTCIRSUO"。
人们很快意识到单独应用替换方法或排列方法加密,都是很不保险的。但是如果结合这两种方法,在当时就可以得到非常可靠的加密方法。所以,很多重要信息先使用替换方法加密,再将加密的结果用排列的方法加密。用两种方法结合就可以将"VICTORIOUS" 加密成"JWPUDJSTVP"。
考古学家最近在一个石台上发现了一些信息。初看起来它们毫无意义,所以有人设想它们可能是用替换和排列的方法被加密了。人们试着解读了石台上的密码,现在他们想检查解读的是否正确。他们需要一个计算机程序来验证,你的任务就是写这个验证程序。

输入
输入有两行。第一行是石台上的文字。文字中没有空格,并且只有大写英文字母。第二行是被解读出来的加密前的文字。第二行也是由大写英文字母构成的。 两行字符数目的长度都不超过100。

输出
如果第二行经过某种加密方法后可以产生第一行的信息,输出 “YES”,否则输出"NO"。

样例输入
JWPUDJSTVP
VICTORIOUS

样例输出
YES

考点:字符串,排序

#include<bits/stdc++.h>
using namespace std;
int main(){string s1,s2;bool flag=true;cin>>s1>>s2;for(int a=0;a<s2.length();a++){if(s2[a]>='A'&&s1[a]<='Y')s2[a]=s2[a]+1;else if(s2[a]=='Z')s2[a]='A';}sort(s1.begin(),s1.end());//对字符串进行排序(字典序)sort(s2.begin(),s2.end());for(int a=0;a<s1.length();a++){if(s1[a]!=s2[a]){cout<<"NO";flag=false;}}	if(flag==true)cout<<"YES";return 0;
}

单词倒排
编写程序,读入一行英文(只包含字母和空格,单词间以单个空格分隔),将所有单词的顺序倒排并输出,依然以单个空格分隔。

输入:输入为一个字符串(字符串长度至多为100)。
输出:输出为按要求排序后的字符串。

样例输入I am a student
样例输出student a am I

#include<bits/stdc++.h>
using namespace std;
int main()
{string s;//用于输入的字符串getline(cin,s);vector<string> word;//定义字符串类型的动态数组存单词s=s+' ';//字符串后连接一个空格用来确保单词全部存入动态数组里int x=0;//目标遍历到的字符的位置for(int a=0;a<s.length();a++){if(s[a]==' '){//遇到了空格说明已经遍历完一个单词了word.push_back(s.substr(x,a-x));//提取子串存入动态数组x=a+1;}}for(int a=word.size()-1;a>=0;a--)cout<<word[a]<<" ";return 0;
}

单词排序
输入一行单词序列,相邻单词之间由1个或多个空格间隔,请按照字典序输出这些单词,要求重复的单词只输出一次。(区分大小写)

输入:一行单词序列,最少1个单词,最多100个单词,每个单词长度不超过50,单词之间用至少1个空格间隔。数据不含除字母、空格外的其他字符。

输出:按字典序输出这些单词,重复的单词只输出一次。

样例输入She wants to go to Peking University to study Chinese

样例输出
Chinese
Peking
She
University
go
study
to
wants

#include <bits/stdc++.h>
using namespace std;int main()
{string s;getline(cin, s);vector<string> word;//创建string类型动态数组用来存单词int x = 0;s = s + ' '; //字符串后加一个空格用做最后一个单词的判断for (int a = 0; a < s.length(); a++){if (s[a] == ' ') //当遇到空格就说遍历完一个单词了{word.push_back(s.substr(x, a - x)); //提取单词放进动态数组中x = a + 1;}}sort(word.begin(), word.end());for (int a = 0; a < word.size(); a++)if ((word[a] != word[a - 1]) && (word[a].empty() != true))cout << word[a] << endl;return 0;
}

单词的长度
输入一行单词序列,相邻单词之间由1个或多个空格间隔,请对应地计算各个单词的长度。注意,如果有标点符号(如连字符,逗号),标点符号算作与之相连的词的一部分。没有被空格间开的符号串,都算作单词。

输入
一行单词序列,最少1个单词,最多300个单词,单词之间用至少1个空格间隔。单词序列总长度不超过1000。

输出
依次输出对应单词的长度,之间以逗号间隔。

样例输入
She was born in 1990-01-02 and from Beijing city.

样例输出
3,3,4,2,10,3,4,7,5

#include <bits/stdc++.h>
using namespace std;int main()
{string s;getline(cin, s);vector<string> word;//创建string类型动态数组用来存单词int x = 0;s = s + ' '; //字符串后加一个空格用做最后一个单词的判断for (int a = 0; a < s.length(); a++){if (s[a] == ' ') //当遇到空格就说遍历完一个单词了{word.push_back(s.substr(x, a - x)); //提取单词放进动态数组中x = a + 1;}}for (int a = 0; a < word.size(); a++)if (word[a].length() != 0)cout << word[a].length() << ",";return 0;
}

最长最短单词
输入1行句子(不多于200个单词,每个单词长度不超过100),只包含字母、空格和逗号。单词由至少一个连续的字母构成,空格和逗号都是单词间的间隔。
试输出第1个最长的单词和第1个最短单词。

输入:一行句子。
输出:两行输出: 第1行,第一个最长的单词。 第2行,第一个最短的单词。

样例输入
I am studying Programming language C in Peking University

样例输出
Programming
I

提示
如果所有单词长度相同,那么第一个单词既是最长单词也是最短单词。

#include <bits/stdc++.h>
using namespace std;int main()
{string s;vector<string> word;//定义动态string类型数组存单词int max = 0, min = 101;getline(cin, s);s = s + ' '; //确保存入到最后一个单词int x = 0, count = 0; //当前单词位置,单词长度for (int a = 0; a < s.length(); a++){if (s[a] == ' '){word.push_back(s.substr(x, a - x));count++;//记录单词长度x = a + 1;}}for (int a = 0; a < word.size(); a++){if (word[a].length() >= max)max = word[a].length();if (word[a].length() <= min)min = word[a].length();}for (int a = 0; a < word.size(); a++)if (word[a].length() == max){cout << word[a];break;}cout << endl;for (int a = 0; a < word.size(); a++)if (word[a].length() == min){cout << word[a];break;}return 0;
}

在这里插入图片描述
方法1:
在这里插入图片描述

方法2
在这里插入图片描述


http://www.ppmy.cn/news/20948.html

相关文章

又一个开源工具搞完了,工作效率直接翻倍

&#x1f3e1; 博客首页&#xff1a;派 大 星 ⛳️ 欢迎关注 &#x1f433; 点赞 &#x1f392; 收藏 ✏️ 留言 &#x1f3a2; 本文由派大星原创编撰 &#x1f6a7; 系列专栏&#xff1a;《开源专栏》 &#x1f388; 本系列主要输出作者自创的开源项目 &#x1f517; 作品&…

git常用命令

在电脑的任意位置创建一个d:/ABA04_git04_git&#xff09;作为我们的本地Git仓库&#xff1a;git init 代码提交暂存区&#xff1a;git add . 代码提交本地仓库&#xff1a;git commit -m ‘注释内容’ 给特定的某个commit版本打标签&#xff0c;比如现在某次提交的id为 039bf8…

CSS 常见布局

文章目录CSS 常见布局单列布局单列布局&#xff08;不通栏&#xff09;单列布局&#xff08;通栏&#xff09;双列布局floatoverflow:hiddenflexgrid三列布局三列布局&#xff08;圣杯布局&#xff09;三列布局&#xff08;双飞翼布局&#xff09;等高布局等高布局&#xff08;…

【Nacos】@RefreshScope注解的使用与原理

Value注解可以在项目启动时获取到配置中心的值&#xff0c;但是如果在Nacos配置中心后台修改了值&#xff0c;此时项目是无法动态感知修改后的值&#xff0c;需要利用RefreshScope注解来实现动态感知。 RefreshScope实现动态感知的使用 只需要在类上加上RefreshScope注解即可…

自动驾驶感知——毫米波雷达

文章目录1. 雷达的基本概念1.1 毫米波雷达分类1.2 信息的传输1.3 毫米波雷达的信号频段1.4 毫米波雷达工作原理1.4.1 毫米波雷达测速测距的数学原理1.4.2 毫米波雷达测角度的数学原理1.4.3 硬件接口1.4.4 关键零部件1.4.5 数据的协议与格式1.5 车载毫米波雷达的重要参数1.6 车载…

Android 多线程编程

一、进程和线程的概念 进程&#xff1a;一次程序的执行称为一个进程&#xff0c;每个 进程有独立的代码和数据空间&#xff0c;进程间切换的开销比较大&#xff0c;一个进程包含1—n个线程。进程是资源分享的最小单位。 线程&#xff1a;同一类线程共享代码和数据空间&#xf…

Java集合常见面试题(五)

Map 接口 ConcurrentHashMap 的实现原理 JDK 1.7 JDK1.7中的ConcurrentHashMap 是由 Segment 数组结构和 HashEntry 数组结构组成&#xff0c;即ConcurrentHashMap 把哈希桶切分成小数组&#xff08;Segment &#xff09;&#xff0c;每个小数组有 n 个 HashEntry 组成。 其…

AI作画:文心一格赋能艺术与设计创作

针对视觉内容创作门槛高、耗时长等行业痛点问题&#xff0c;百度推出了基于文心大模型的AI艺术创作产品文心一格。通过文心一格核心系统的技术创新&#xff0c;让AI作画普惠大众&#xff0c;提升创作效率。目前&#xff0c;文心一格产品已经对外发布使用&#xff0c;大众用户均…

Notepad++作死,国产文本编辑器Notepad--发布

作死的Notepad Notepad 和 Notepad 都是基于 Windows 的文本编辑器&#xff0c;通常用于编写和编辑纯文本文件。 这两个应用程序都是简单的轻量级程序&#xff0c;提供基本的文本编辑功能。 Notepad是一口君经常使用的一款文本编辑软件&#xff0c;用了大概10年了。 然而Not…

CodePlus | C# 网页所有图片批量下载

C# 网页所有图片批量下载 文章目录C# 网页所有图片批量下载前言演示效果操作步骤第一步&#xff1a;安装CodePlus扩展库第二步&#xff1a;提取链接程序第三步&#xff1a;取网页源码第四步&#xff1a;设置前后缀第五步&#xff1a;执行下载更多演示结束语前言 今天想着换一个…

java基于ssm的旅游景点门票预订网站

通过本系统&#xff0c;能够实现用户进行登录后&#xff0c;在网站上对旅游景点信息进行门票预订&#xff0c;也可以通过在线留言系统&#xff0c;了解景点相关信息&#xff0c;为用户提供全方位的服务&#xff0c;同时为节省用户的时间&#xff0c;本系统采用分地名的方式&…

联邦学习与计算机视觉、自然语言处理及推荐系统

《联邦学习》&#xff08;杨强等著&#xff09;读书笔记1、联邦学习与计算机视觉计算机视觉是一门教授机器从图像中学习知识的科学。它是一种利用计算机和相关设备&#xff0c;从采集的图像和视频中学习三位信息的生物视觉模拟。换言之&#xff0c;我们为计算机配置了“眼睛”&…

云计算|OpenStack|社区版OpenStack安装部署文档(一 --- 前期硬件准备和部署规划)

前言&#xff1a; 社区版OpenStack是比较难以安装部署的&#xff0c;本文将就安装部署做一个详细的说明。 首先&#xff0c;OpenStack社区版本众多&#xff0c;如何选择一个合适的版本是第一个要解决的问题&#xff08;这里的合适是指的OpenStack版本和操作系统的版本合适&am…

SAP BASIS服务器参数大全

path: /usr/sap/PRD/SYS/profile profile: PRD_DVEBMGS00_sapapp 如果您想查看所有的参数及当前设定&#xff0c;可使用SA38 执行程序 RSPARAM 修改附加配置 T-CODE:RZ10 进行SAP系统参数的设置,设置后需激活参数并重启SAP实例&#xff0c;配置参数才会生效 login/system_clien…

如何把Node项目部署到服务器上

1. 如何合理选购一台服务器 对于服务器的选择&#xff0c;我们主要有以下几种选择&#xff1a; 1. 阿里云&#xff1b; 2. 腾讯云&#xff1b; 3. 华为云&#xff1b; 4. 亚马逊云&#xff1b; 国内用户如果没有特殊需求可以选择前三种&#xff0c;这里我阿里云举例&…

Apache Spark 机器学习 特征转换 1

分词器&#xff08;Tokenizer&#xff09; 分词是一个处理过程&#xff0c;其将文本句子分割成一系列独立的单词词汇集合&#xff0c;Spark提供Tokenizer分词器类&#xff0c;其提供的功能是使用分隔符的方式处理文本句子的特征转换&#xff0c;Spark提供RegexTokenizer分词器…

Java面试题:finalize的原理和工作缺点是什么

finalize是 Object 中的一个方法&#xff0c;如果子类重写它&#xff0c;垃圾回收时此方法会被调用&#xff0c;可以在其中进行资源释放和清理工作。其次将资源释放和清理放在 finalize 方法中非常不好&#xff0c;非常影响性能&#xff0c;严重时甚至会引起 OOM&#xff0c;从…

Redis基础篇:Redis简介和安装

第一章&#xff1a;Redis简介 一&#xff1a;简介 Redis诞生于2009年&#xff0c;基于内存的键值型NoSQL数据库。 二&#xff1a;特征 1&#xff1a;键值型&#xff1a;value支持多种不同的数据结构&#xff0c;功能丰富。 2&#xff1a;单线程&#xff1a;单线程执行命令&…

Bone Collector(Python)

Python——动态规划——Bone Collector Bone Collector 问题引入 【问题描述】Many years ago , in Teddy’s hometown there was a man who was called “Bone Collector”.This man like to collect varies of bones , such as dog’s , cow’s , also he went to the grave…

Swin-Transformer算法解析

本文参考&#xff1a; SwinTransformer&#xff1a;使用shifted window的层级Transformer(ICCV2021)_tzc_fly的博客-CSDN博客 https://zhuanlan.zhihu.com/p/430047908 目录 1 为什么在视觉中使用Transformer 2 Swin-Transformer算法总体架构 3 Swin-Transformer Block详述…
最新文章