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…...
SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...
NPOI操作EXCEL文件 ——CAD C# 二次开发
缺点:dll.版本容易加载错误。CAD加载插件时,没有加载所有类库。插件运行过程中用到某个类库,会从CAD的安装目录找,找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库,就用插件程序加载进…...
解析两阶段提交与三阶段提交的核心差异及MySQL实现方案
引言 在分布式系统的事务处理中,如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议(2PC)通过准备阶段与提交阶段的协调机制,以同步决策模式确保事务原子性。其改进版本三阶段提交协议(3PC…...
算术操作符与类型转换:从基础到精通
目录 前言:从基础到实践——探索运算符与类型转换的奥秘 算术操作符超级详解 算术操作符:、-、*、/、% 赋值操作符:和复合赋值 单⽬操作符:、--、、- 前言:从基础到实践——探索运算符与类型转换的奥秘 在先前的文…...
【iOS】 Block再学习
iOS Block再学习 文章目录 iOS Block再学习前言Block的三种类型__ NSGlobalBlock____ NSMallocBlock____ NSStackBlock__小结 Block底层分析Block的结构捕获自由变量捕获全局(静态)变量捕获静态变量__block修饰符forwarding指针 Block的copy时机block作为函数返回值将block赋给…...
深入理解 React 样式方案
React 的样式方案较多,在应用开发初期,开发者需要根据项目业务具体情况选择对应样式方案。React 样式方案主要有: 1. 内联样式 2. module css 3. css in js 4. tailwind css 这些方案中,均有各自的优势和缺点。 1. 方案优劣势 1. 内联样式: 简单直观,适合动态样式和…...
