计蒜客详解合集(2)期
目录
T1126——单词倒排
T1617——地瓜烧
T1612——蒜头君的数字游戏
T1488——旋转单词
T1461——校验信用卡号码
T1437——最大值和次大值
T1126——单词倒排
超级水的一道题,和T1122类似但更简单,分割后逆序输出即可~
- 编写程序,读入一行英文(只包含字母和空格,单词间以单个空格分隔),将所有单词的顺序倒排并输出,依然以单个空格分隔。
- 输入格式:输入为一个字符串 (字符串长度至多为 100)。
- 输出格式:输出为按要求排序后的字符串。

#include <iostream>
#include <string>
#include <vector>
using namespace std;int main(int argc, char** argv) {string S;vector<string> V;getline(cin,S);string temp;//分割单词 for(int i=0;i<=S.size()-1;i++){temp+=S[i];if(S[i]==' '||i==S.size()-1)//最后一个单词要有单独的操作 {V.push_back(temp);temp.clear();} }//删除除了最后一个单词以外,末尾的空格 for(int i=0;i<V.size()-1;i++){string temp=V[i];temp.erase(temp.size()-1);V[i]=temp;}for(int i=V.size()-1;i>=0;i--){cout<<V[i]<<" ";}cout<<endl;return 0;
}

T1617——地瓜烧
同样是水题,不解释~
- 恭头君喜欢喝地瓜烧,刚开始他在小卖部买了 地瓜烧,已知 人空可以换一瓶地风烧,请帮他计算一下,最后能喝几瓶地瓜院。(小卖部不允许借商品)
- 输入格式:行包括两个整数n,k (1< n,k <=108)。
- 输出格式:输出一个整数,表示蒜头君最多能喝地瓜烧的瓶数。
#include <iostream>
using namespace std;/* run this program using the console pauser or add your own getch, system("pause") or input loop */int main(int argc, char** argv)
{int n=0,k=0;cin>>n>>k;int num1=n;int num2=n/k;cout<<(num1+num2)<<endl;return 0;
}

T1612——蒜头君的数字游戏
水题,太简单不解释,记得别把多余的0输入就行,由于没有明确的循环次数,本题用while循环更适合一些。
- 蒜头君最近被要求参加一个数字游戏,要求他把看刊的一系列整数长度不一定,以0 结束,最多不过 100 个),记住了然后反着念出来表示结中的数字0就不要今出来了,这对蒜头君的那点记忆力来说实在是太难了,所以请你帮他偏程解决这个问题。
- 输入格式:行内输入一系列整数 (大小在(1~10^9 之内) ,以0结束,用空格来分隔。
- 输出格式:行内倒着输出这一系列整数,以空格间隔。
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;int main(int argc, char** argv)
{int num=-1;vector<int> V;//初始化必备变量 while(num!=0){cin>>num;V.push_back(num);}reverse(V.begin(),V.end());//翻转 for(vector<int>::iterator it=V.begin()+1;it!=V.end();it++)cout<<(*it)<<" ";cout<<endl;//从第二个下标开始迭代,去掉多余的0 return 0;
}
T1488——旋转单词
- 今天的英语课,王老师为了复习以前学过的单词,提高学生的学习兴趣。想出了一个主意:读入 M组数据 ,其中每组数据一个单词(单长度 36 字个字符)和一个整数N(1~36),从该单词末位开始逐位相移到单词的开头。如果还没达到N倍 ,则再从末位未位开移,直到 N 为止,求称 N 位后的新单词,你能编程帮助贝贝最快完成任务吗?
- 输入格式:文件共有2 x M +1行,第1行为 M,第2行开始为体数据,每一组数据有2行,第1行字串L,第2行为N.
- 输出格式:共 M 行,每行为旋转后的字串。
如题,抽象本题的重点在于以下几点:
1.输入一个字符串并匹配一个专属的数字
2.将每一个字符串后n位按照原顺序前置
对于要点1,此处采用自定义类型压入vector解决;对于要点2,采用双循环遍历解决。
具体见代码:
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;struct yuansu{string s;int num;//自定义类型符合题意要求
};int main(int argc, char** argv)
{vector<yuansu> V;int n=0;cin>>n;for(int i=1;i<=n;i++){yuansu temp;cin>>temp.s;cin>>temp.num;V.push_back(temp);}//接受题干数据 vector<string> G;//G用来存放处理后的字符串 for(int i=0;i<=V.size()-1;i++){string linshi;//临时的字符串 string goal=V[i].s;int n=V[i].num;int length=goal.size()-1;//获取当前元素的字符串和数字M,以及当前字符串的下标最大值 for(int j=length,k=1;k<=n;j--,k++){//从最后一个字符开始操作,选取n个字符(即题干中的M) linshi+=goal[j];//采用字符串的加法赋值 }reverse(linshi.begin(),linshi.end());//注意!由于字符串的加法是将新的字符加到最后面,所以此处先进行翻转使其符合题意 for(int p=0;p<=length-n;p++){linshi+=goal[p];//将前length-n个不需要翻转的字符串补充进去 }G.push_back(linshi);//压入G中,进行下一组元素的操作 } for(vector<string>::iterator it=G.begin();it!=G.end();it++)cout<<(*it)<<endl;//遍历G,得出答案 return 0;
}
加入一个藏头诗版的测试用例:完美AC

T1461——校验信用卡号码

如题,本题需要解决的本质就是多个字符串转换为整型数据的过程。主要的考点在于如下3个:
1.循环输入多个字符串并不间断
2.将字符串处理为整型数据
3.完成对整形数据的检验
上述三个要求通过STL可以很轻松地解决,具体做法写在了代码注释之中。
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;void vectorPrint(vector<int> T1)
{for(vector<int>::iterator it=T1.begin();it!=T1.end();it++)cout<<(*it)<<" ";//打印整型vector的方法,没有实际意义,仅仅用来调试
} /* run this program using the console pauser or add your own getch, system("pause") or input loop */int main(int argc, char** argv)
{string temp;//定义临时目标字符串 while (cin>>temp)//当输入字符串时,循环就不停止,一直进入并计算 {
// cout<<temp<<endl;vector<int> V;for(int i=0;i<=temp.size()-1;i++){int t=temp[i]-48;//将字符串的每一位处理为int型的数据,并且压入int型的vector V.push_back(t);}
// vectorPrint(V);reverse(V.begin(),V.end());//逆向操作后,从头开始按照奇数偶数位遍历。 int jishu=0,oushu=0,sum=0;for(int i=0;i<=V.size()-1;i+=2){jishu+=V[i];//奇数位直接相加 } for(int i=1;i<=V.size()-1;i+=2){V[i]*=2;if(V[i]>=10)V[i]-=9;oushu+=V[i];//偶数位判断*2是否大于10,大于10需要减9 }sum=jishu+oushu;//求和后判断是否可以整除10,完杀 if(sum%10==0)cout<<"Pass"<<endl;elsecout<<"Fail"<<endl;}return 0;
}

T1437——最大值和次大值

比较简单的题,用STL库可以大幅度降低代码复杂度:将int型的数字压入到vector中,调用sort实现从小到大排序,再采用reverse将其翻转为从大到小。将第一个元素(最大值)首先输出,再遍历后面第一个与最大值不同的元素,其即为题干要求的次大值。
sort和reverse均在头文件“#include <algorithm>”中。
代码如下:
#include <iostream>
#include <vector>
#include <algorithm>using namespace std;/* run this program using the console pauser or add your own getch, system("pause") or input loop */int main(int argc, char** argv)
{int n=0;cin>>n;vector<int> V;for(int i=1;i<=n;i++){int temp=0;cin>>temp;V.push_back(temp); }sort(V.begin(),V.end());reverse(V.begin(),V.end());//从大到小排序
// for(vector<int>::iterator it=V.begin();it!=V.end();it++)
// cout<<(*it)<<" ";
// cout<<endl;int max=V[0];cout<<max<<endl;for(int i=1;i<=n-1;i++){if(V[i]!=max){cout<<V[i]<<endl;break;} } return 0;
}


相关文章:
计蒜客详解合集(2)期
目录 T1126——单词倒排 T1617——地瓜烧 T1612——蒜头君的数字游戏 T1488——旋转单词 T1461——校验信用卡号码 T1437——最大值和次大值 T1126——单词倒排 超级水的一道题,和T1122类似但更简单,分割后逆序输出即可~ 编写程序,读入…...
华为防火墙vrrp+hrp双机热备主备备份(两端为交换机)
默认上下来全两个vrrp主都是左边 工作原理: vrrp刚开机都是先initialize状态,然后切成active或standb状态。 hrp使用18514端口,且用的单播,要策略放行,由主设备发hrp心跳报文 如果设备为acitve状态时自动优先级为65…...
Angular 由一个bug说起之一:List / Grid的性能问题
在angular中,MatTable构建简单,使用范围广。但某些时候会出现卡顿 卡顿情景: 1:一次性请求太多的数据 2:一次性渲染太多数据,这会花费CPU很多时间 3:行内嵌套复杂的元素 4:使用过多的…...
第12章 PyTorch图像分割代码框架-3:推理与部署
推理模块 模型训练完成后,需要单独再写一个推理模块来供用户测试或者使用,该模块可以命名为test.py或者inference.py,导入训练好的模型文件和待测试的图像,输出该图像的分割结果。inference.py主体部分如代码11-7所示。 代码11-7 …...
MYSQL---基础篇
一、数据库操作 1.创建数据库:CREATE DATABASE db_test1; 2.使用数据库:use 数据库名; 3.删除数据库:DROP DATABASE [IF EXISTS] db_name; 4.创建表:CREATE TABLE table_name ( field1 datatype, field2…...
【启扬方案】启扬安卓屏一体机在医疗自助服务终端上的应用解决方案
为了解决传统医疗模式下的“看病难、看病慢”等问题,提高医疗品质、效率与效益,自助服务业务的推广成为智慧医疗领域实现信息化建设、高效运作的重要环节。 医疗自助服务终端是智慧医疗应用场景中最常见的智能设备之一,它通过与医院信息化系统…...
收藏!7个国内「小众」的程序员社区
技术社区是大量开发者的集聚地,在技术社区可以了解到行业的最新进展,学习最前沿的技术,认识有相同爱好的朋友,在一起学习和交流。 国内知名的技术社区有CSDN、博客园、开源中国、51CTO,还有近两年火热的掘金ÿ…...
LeetCode(4)删除有序数组中的重复项 II【数组/字符串】【中等】
目录 1.题目2.答案3.提交结果截图 链接: 80. 删除有序数组中的重复项 II 1.题目 给你一个有序数组 nums ,请你** 原地** 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。 不要使用额外的数…...
C++ 同构字符串/ 单词规律
给定两个字符串 s 和 t ,判断它们是否是同构的。 如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。 每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相…...
oracle 中 %TYPE %ROWTYPE
前言 PL/SQL 提供了 %TYPE 和 %ROWTYPE 两种特殊的变量,用于声明与表的列相匹配的变量和用户定义数据类型,前一个表示单属性的数据类型,后一个表示整个属性列表的结构,即元组的类型。 举例: -- 数据表TB_TRANS_RECO…...
Pytorch实战教程(五)-计算机视觉基础
0. 前言 计算机视觉是指通过计算机系统对图像和视频进行处理和分析,利用计算机算法和方法,使计算机能够模拟和理解人类的视觉系统。通过计算机视觉技术,计算机可以从图像和视频中提取有用的信息,实现对环境的感知和理解,从而帮助人们解决各种问题和提高效率。本节中,将介…...
51单片机PCF8591数字电压表数码管显示设计( proteus仿真+程序+设计报告+讲解视频)
PCF8591数字电压表数码管显示 1.主要功能:讲解视频:2.仿真3. 程序代码4. 设计报告5. 设计资料内容清单&&下载链接资料下载链接(可点击): 51单片机PCF8591数字电压表数码管设计( proteus仿真程序设计报告讲解视…...
普华永道于进博会首发“企业数据资源会计处理一体化平台”
11月6日,在第六届中国国际进口博览会上,普华永道发布企业数据资源会计处理一体化平台(英文名为Data Accounting Platform,简称DAP)。该产品以普华永道“五步法”数据资源入表路径为理论依据,依托多年来普华…...
IDEA 使用Reset Current Branch to Here 进行git 版本控制,图文操作
文章目录 一、总结区别(只针对本地仓库操作)Soft详细解释文件版本冲突处理 Mixed详细解释Hard详细解释Keep详细解释文件版本冲突处理 二、其他Revert commit 参考文档 一、总结区别(只针对本地仓库操作) Soft详细解释 Soft操作只…...
有趣的 TCP 抢带宽行为
昨天发了一篇 非技术文章,很多人找我讨论,浓缩成一句话,就是 “死道友而不死贫道”,我的简历上写着这些把戏能带来什么,我的 blog 上写着这么做是多么无耻,哈哈。 看看共享链路上如何挤占带宽: …...
HCIP---VRRP
文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 一. VRRP概述 VRRP---虚拟路由器冗余协议 VRRP(Virtual Router Redundancy Protocol)是一种用于在多个路由器之间创建虚拟路由器的协议。 VRRP使用了一系列协议来实现路…...
在家用Python搞副业,也能月入10000+
下班副业实现经济自由的时候,你还在床上躺着,天天摆烂吗?这样的生活真的是你想要的吗? 疫情在家接一些Python相关的小单子,既能给自己练手,还能赚是真香 从零基础开始真的一台电脑和一部手机就可以✅ 一次…...
play() failed because the user didn‘t interact with the document first.
起因: 进入页面视频不自动播放(有时候可以,有时候不行)。 原因: Chrome 在66版本后为了避免标签产生随机噪音,都在遵循autoplay政策。 解决方法: 为 video 标签设置静音状态即可(添…...
Java任意视频转MP4
Java任意视频转MP4 在做视频上传功能时候,用户可能上传不同类型的视频文件,导致需要特定播放器才能播放,为了解决视频格式统一问题需要把视频转码一下 ,转换成统一的MP4格式。我们直接使用第三方工具 FFmpeg FFmpeg介绍 FFmpeg…...
flutter实践:慎用Expanded
问题:在一个Android原生的弹框里显示flutter view,由于使用了Expanded导致组件未显示出来 最神奇的地方在于debug调试模式显示正常,然后用release版本发布时怎么都显示不出来,还导致点击后无响应ANR 问题代码: child: Stateful…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...
【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...
并发编程 - go版
1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...
