ZZULI训练: 数组和字符串专题
ZZULI训练:数组和字符串专题ZZULI训练: 数组和字符串专题ZZULI训练:数组和字符串专题
- 部分多实例没写循环多次是因为在main里面循环了, 你们写的时候要加上
- 只提供大概思路和核心代码
- 建议多尝试一下c++, 并没有想象的那么难
7-1 个位数统计
- 可以开个数组来存一下每个数组出现的个数, c++的话直接用map就很方便 (数字很大, 要用字符串来存
void solve() {map<char, int> mp;string s; cin >> s;for (auto c: s) mp[c] ++;for (auto [c, cnt]: mp) {printf("%c:%d\n", c, cnt);}
}
7-2 检查密码
- 模拟一下题目的要求就可以了
- 注意数据中可能会有空格, cin和scanf都会读取错误, 换成gets或者getline就行
- 注意使用gets和getline要先把前面读的数据个数T后面的回车吃掉 (我已经在main中处理, 所以代码里没有体现这一点
- getchar(), cin.get()等等等都可以吃掉回车, 凭个人喜好选择即可
void print(int x) { // 把输出写成外函数, 看起来清楚一点if (x == 0) cout << "Your password is wan mei.\n";if (x == 1) cout << "Your password is tai duan le.\n";if (x == 2) cout << "Your password is tai luan le.\n";if (x == 3) cout << "Your password needs shu zi.\n";if (x == 4) cout << "Your password needs zi mu.\n";
}void solve() {string s;getline(cin, s);if (s.size() < 6) {print(1);return;}int nums = 0, alp = 0; // 统计数字和字母的个数for (auto c: s) {if (c == '.') continue; // '.'特判if (isdigit(c)) nums ++;else if (isalpha(c)) alp ++;else { // 出现非法字符print(2);return;}}// 题目保证不会出现数字和字母都不存在的情况if (!nums) print(3);else if (!alp) print(4);else print(0);
}
7-3 整数进制转换
- 进制转化, 没啥好说的, 记住如何实现就行
int n, base;void solve() {cin >> n >> base;vector<int> ne;while (n) {ne.push_back(n % base);n /= base;}reverse(ne.begin(), ne.end()); // 由于储存是逆向的, 需要反转for (auto x: ne) cout << x;cout << '\n'; // 题目要求末尾输出换行
}
7-4 求多少对相反数
- 和第一题实现差不多, 记录一下每个数是否出现, 数组, map, set都可以实现
void solve() {map<int, int> mp;cin >> n;for (int i = 0; i < n; i ++) {int x; cin >> x;mp[x] ++;if (mp[-x]) m ++; // 如果他的相反数存在, 那么答案 + 1}cout << m;
}
7-5 密码报错
- 把每一位都转化成小写(或者大写), 然后记录不相同的字母个数即可
void solve() {string s, t;cin >> s >> t;int cnt = 0;for (int i = 0; i < s.size(); i ++)if (tolower(s[i]) != tolower(t[i]))cnt ++;cout << cnt;
}
7-6 合并数组
- 很适合用set的题
- set的性质: 自动排序, 只会存储下来不同的数字.
- 我们把两个数组中的元素全部存入一个set, set里面的元素就是答案辣
- 当然朴素方法也可以过, 但这里不再提供(相信你看了set的做法就会嫌弃朴素做法了
void solve() {set<int> st;int x;while (cin >> x, x) st.insert(x); // 输入小技巧, 当输入的 x 是 0 时, 停止这次输入while (cin >> x, x) st.insert(x);for (auto x: st) cout << x << " ";
}
7-7 集合减法
- 没错, set还可以做, 记录第一个数组中的数字, 在输入第二个数组的时候判断该数字是否在set中, 如果存在就删去该数字
- 记得特判空的情况
void solve() {cin >> n >> m;set<int> st;while (n --) {int x; cin >> x;st.insert(x);} while (m --) {int x; cin >> x;if (st.count(x)) st.erase(x);}for (auto x: st) cout << x << " ";if (st.empty()) cout << 0;
}
7-8 十六进制数转换成相应的十进制数
- 又又是进制转化
- 特判负数即可
int base = 16;int calc(string s) {int res = 0;for (auto c: s) {if (isdigit(c)) res = res * base + c - '0';else res = res * base + c - 'A' + 10; // 计算技巧, 快学一下吧}return res;
}void solve() {string s;while (cin >> s) {if (s[0] != '-') cout << calc(s) << "\n";else cout << -calc(s.substr(1)) << "\n";}
}
7-9 十进制整数转换成R进制数
- 又又又是进制转化
- 我的写法需要特判 0, 剩下的只需要处理输出即可
int n, base;void solve() {cin >> n >> base;if (n < 0) return;else if (n == 0) {cout << 0;return;}vector<int> ne;while (n) {ne.push_back(n % base);n /= base;}reverse(ne.begin(), ne.end());for (auto x: ne) {if (x < 9) cout << x;else cout << (char)(x - 10 + 'A'); // 转换成对应的字母}
}
7-10 sdut-字符串排序
- 小知识, 字符串也可以用sort
- 记得处理最后一位的空格
void solve() {vector<string> v;string s;while (cin >> s) v.push_back(s);sort(v.begin(), v.end());int n = v.size();for (int i = 0; i < n - 1; i ++)cout << v[i] << " ";cout << v.back(); // 可以获取vector的最后一个元素
}
相关文章:
ZZULI训练: 数组和字符串专题
ZZULI训练:数组和字符串专题ZZULI训练: 数组和字符串专题ZZULI训练:数组和字符串专题 部分多实例没写循环多次是因为在main里面循环了, 你们写的时候要加上只提供大概思路和核心代码建议多尝试一下c, 并没有想象的那么难 7-1 个位数统计 可以开个数组来存一下每个数组出现的…...
ElasticSearch如何解决深分页问题?
文章目录 前言From/Size参数Query阶段Fetch阶段深度分页问题Scroll遍历数据基本使用遍历优缺点缺点:优点:」Scroll Scan基本使用Scroll Scan与Scroll的区别Sliced ScrollSearch After基本使用基本原理优缺点总结ES7版本变...
JDK8新特性宝典
JDK8新特性 Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机,Java 仍是企业和开发人员的首选开发平台 课程内容的介绍 了解Java发展史Lambda表达式…...
【C++】关于C++模板的分离编译问题
文章目录1.阐述模板的实例化和重复定义问题2.分离编译可能出现的问题3.解决方法将函数模板的定义放到头文件中模板定义的位置显式实例化模板总结1.阐述模板的实例化和重复定义问题 C模板是一种非常强大的工具,可以为我们提供通用的代码实现方式。然鹅,在…...
小应用记账本-第2章-数据库设计
小应用记账本-第2章-数据库设计 在上一章《小应用记账本-第1章-需求分析》已经罗列了我们需要的功能,因为很简单,所以这一章就来设计数据库吧。 Account表:账户表 字段名类型说明取值idint账户idaccount_namevarchar账户名称remaining_sumd…...
Spring Boot+Vue前后端分离项目练习06之网盘项目创建vue项目
1.安装环境 构建vue项目,需要提前安装相应的环境,这里主要就是node,npm和Vue CLl。 #1、安装nodejs brew install nodejs #2、再执行下面命令来安装npm(npm是开发nodejs时所用的依赖库) brew install npm #3、安装vue cli npm install -g v…...
Python - 单元测试
python-单元测试1 Unittest2 Pytest3 两者区别断言方面用例执行编写规则前后置操作setUp, setUpclass, setUpmodule 区别4 实战操作unittest:pytest:1 Unittest unittest属于python的内置框架,支持多种自动化测试用例的编写,以及支持用例前置条件和后置…...
特权级那些事儿-实模式下分段机制首次出现的原因
前言: 操作系统的特权级模块在整个操作系统的学习中应该算的上是最难啃的了,提到特权级就要绕不开保护模式下的分段机制;如果想要彻底弄明白就要对比实模式下的分段机制有什么缺陷。这就衍生出很多问题如:什么是实模式?…...
详解Vue安装与配置(2023)
文章目录一、官网下载node.js二、安装Node.js三、环境配置四、idea导入vue项目五、IDEA添加Vue.js插件一、官网下载node.js Vue是前端开发框架。搭建框架,首先要搭建环境。搭建Vue的环境工具:node.js(JavaScript的运行环境)&…...
TypeScript深度剖析:Vue项目中应用TypeScript?
一、前言 与link类似 在VUE项目中应用typescript,我们需要引入一个库vue-property-decorator, 其是基于vue-class-component库而来,这个库vue官方推出的一个支持使用class方式来开发vue单文件组件的库 主要的功能如下: metho…...
linux面试高级篇
题目目录1.虚拟机常用有几种网络模式?请简述其工作原理或你个人的理解?2. Dockerfile中最常见的指令是什么?3.docker网络模式有哪些?4.Kubernetes有哪些核心组件这些组件负责什么工作?5. Pod是什么?6.描述一…...
java 4 (面向对象上)
java——面向对象(上) 目录java——面向对象(上)面向对象的思想概述类的成员(1-2):属性和方法对象的内存解析类中属性的使用类中方法的使用1.举例:2.声明方法:3.说明4.re…...
HTTP报头的2个方法
在采集网页信息的时候,经常需要伪造报头来实现采集脚本的有效执行 下面,我们将使用urllib2的header部分伪造报头来实现采集信息 方法1、 #!/usr/bin/python -- coding: utf-8 -- #encodingutf-8 #Filename:urllib2-header.py import urllib2 import…...
yolov5双目检测车辆识别(2023年+单目+双目+python源码+毕业设计)
行人识别yolov5和v7对比yolo车距源码:yolov5双目检测车辆识别(2023年单目双目python源码毕业设计)上盒岛APP,开线上盲盒商店http://www.hedaoapp.com/yunPC/goodsDetails?pid4132 为了提高传统遗传算法(genetic algorithm, GA)IGA优化BP网络迭代时间过长以及精度偏…...
华为OD机试题,用 Java 解【用户调度问题】问题
华为Od必看系列 华为OD机试 全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典使用说明 参加华为od机试,一定要注意不…...
根据mybatis plus注解动态创建sqlite表和表字段
根据mybatis plus注解动态创建sqlite表和表字段 启动时动态创建sqlite数据库,根据mybatis plus注解动态创建表。如果有新增字段,动态创建字段。 文章目录根据mybatis plus注解动态创建sqlite表和表字段一、初始化数据库1.系统启动时初始化数据库2.初始化…...
同步、异步ETL架构的比较
背景介绍: 数据的抽取,转换和加载 (ETL, Extract, Transform, Load) 是构建数据仓库过程中最复杂也是至 关重要的一个步骤,我们通常用两种办法来处理 ETL 流程: 一种是异步(Asynchronous) ETL 方式, 也称为文本文件(Flat file)方式。 另外…...
【机会约束、鲁棒优化】具有排放感知型经济调度中机会约束和鲁棒优化研究【IEEE6节点、IEEE118节点算例】(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
用Python帮老叔选出好基金,大赚一笔,老叔专门提着茅台登门道谢
我有个老叔很喜欢买基金,因为不想被割韭菜,所以啥群都没进,全部自己精挑细选。 看着他的一个本子密密麻麻地写了一大堆东西,全是基金的数据分析,一大把年纪了挺不容易的,于是就决定帮他一把。 在跟他详谈…...
ZeroTier实现内网穿透详细教程,无需公网IP,实现异地组网
ZeroTier实现内网穿透详细教程,无需公网IP,实现异地组网ZeroTier1.官网注册账号,创建自己的局域网段2.点击创建好的网络,进入设置界面进行设置3.下载客户端,安装客户端,然后连接到网络中4.加入网络成功后&a…...
使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...
