AcWing 5147. 数量 + 5148. 字符串匹配 - 思维+字符串处理

5147. 数量

这个题是之前某场周赛第三题的中间一个步骤
这里我选择使用递归,因为数据范围是1e9,所以当传入的数字位数超过9为时,即可终止递归。这里只需要传入一个参数dep来表示当前数字有多少位就可以。
但是在这之前,我并没有传入dep参数,我是在递归函数里直接使用的if条件来进行判断,if(x*10+4 <= 1e9) 但是这样的时候,当数据是444444444时就会进入死循环,在这之后我尝试把 if 两边的数字强制转换为long long,但是还是进行死循环。(这个原因的话我猜应该还是精度的问题,但是今天我的鼠标有点问题,所以后来直接多传入了一个参数,具体的原因等之后我再研究研究吧QAQ)
AC代码:

#include <stdio.h>
#include <algorithm>
#include <cstring>
#include <iostream>
#include <queue>
using namespace std;
#define ll long long
#define sf(x) scanf("%d", &x);
#define de(x) cout << x << " ";
#define Pu puts("");
const int N = 5e3 + 9;
int a[N];
int n, m, ans;
int cnt;
void fun(int x, int dep) {if (dep > 9)return;a[++cnt] = x * 10 + 4;fun(x * 10 + 4, dep + 1);a[++cnt] = x * 10 + 7;fun(x * 10 + 7, dep + 1);
}
int main() {cin >> n;fun(0, 1);int i = 1;sort(a + 1, a + cnt + 1);while (i <= cnt) {if (a[i] > n)break;i++;}cout << (i - 1);return 0;
}

5148. 字符串匹配

这个题目因为说需要在满足第一个条件的基础下再尝试着不考虑大小写进行匹配。
因此直接用数组记录a-z,A-Z出现的次数
然后遍历s字符串中的每一个字符,这里我们只需要使用0-25的for循环就可以,一是我们已经记录了每个字符出现的字数,二是字符串是只含有小写或者大写字母的。
如果当前t中含有这个字符,那么直接加上这个字符的数量就是最优。
在上面一步完成后,我们再进行一次上面的循环,如果s中的当前字符为小写字母,那么我们直接去t中找对应的大写字母
如果s中的当前字符为大写字符,那么我们直接去t中找对应的小写字母
这个题目并不是很难,重要的是对一些细节的处理吧

#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define sf(x) scanf("%d", &x);
#define de(x) cout << x << " ";
#define Pu puts("");
const int N = 2e5 + 9, mod = 1e9 + 7;
int n, m, ans;
char s[N], t[N];
int a[N], b[N];
int main() {scanf("%s%s", s, t);n = strlen(s);m = strlen(t);for (int i = 0; i < n; i++) {a[(s[i] - 'A')]++;}for (int i = 0; i < m; i++) {b[(t[i] - 'A')]++;}int an1 = 0, an2 = 0;int k;for (int i = 0; i < 26; i++) {k = (i + 'A') - 'A';  // 大写字母if (a[k]) {if (b[k] >= a[k]) {b[k] -= a[k];an1 += a[k];a[k] = 0;} else {a[k] -= b[k];an1 += b[k];b[k] = 0;}}k = (i + 'a' - 'A');  // 小写字母if (a[k]) {if (b[k] >= a[k]) {b[k] -= a[k];an1 += a[k];a[k] = 0;} else {a[k] -= b[k];an1 += b[k];b[k] = 0;}}}int k1;for (int i = 0; i < 26; i++) {k1 = (i + 'A') - 'A';  // 大写字母k = k1 + 32;if (a[k1]) {if (b[k] >= a[k1]) {b[k] -= a[k1];an2 += a[k1];a[k1] = 0;} else {a[k1] -= b[k];an2 += b[k];b[k] = 0;}}k1 = (i + 'a' - 'A');  // 小写字母k = k1 - 32;if (a[k1]) {if (b[k] >= a[k1]) {b[k] -= a[k1];an2 += a[k1];a[k1] = 0;} else {a[k1] -= b[k];an2 += b[k];b[k] = 0;}}}cout << an1 << " " << an2;return 0;
}

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

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

相关文章

【Node】Mac多版本Node切换

1、查看当前电脑是否安装node node -v或者查看当前电脑通过brew安装的node路径 ls /usr/local/Cellar/node*2、查看可安装的node brew search node3、安装其他版本node 下载需要安装的node版本 brew install node144、brew切换node版本 假设之前的版本是18&#xff0c;需…

Uniapp学习之从零开始写一个简单的小程序demo(新建页面,通过导航切换页面,发送请求)

先把官网文档摆在这&#xff0c;后面会用到的 [uniapp官网文档]: https://uniapp.dcloud.net.cn/vernacular.html# 一、开发工具准备 1-1 安装HBuilder 按照官方推荐&#xff0c;先装一个HBuilder 下载地址&#xff1a; https://www.dcloud.io/hbuilderx.html1-2 安装微信开…

chrome插件:一个基于webpack + react的chrome 插件项目模板

项目结构 $ tree -L 1 . ├── README.md ├── node_modules # npm依赖 ├── package.json # 详细依赖 ├── pnpm-lock.yaml ├── public # 里边包含dist&#xff0c;安装的时候安装这个目录即可 ├── src …

postgre 12.11单实例安装文档

一 下载 访问https://www.postgresql.org/download/&#xff0c;点击左侧的‘source进行下载&#xff0c;一般选择bz2的安装包。 二 安装 这里安装12.11版本的postgre&#xff0c;数据目录路径为/data/server/pgdata&#xff0c;端口为5432. 2.1 安装依赖包 #安装 yum in…

linux后台开发面试题

网络 网络的字节序网络知识 tcp三次握手 各种细节 timewait状态tcp 与 udp 区别 概念 适用范围TCP四次挥手讲一下过程&#xff0c;最后一次ack如果客户端没收到怎么办&#xff0c;为什么挥手不能只有三次&#xff0c;为什么time_wait。对于socket编程&#xff0c;accept方法是…

C++信息学奥赛1171:大整数的因子

该程序是一个寻找能够整除输入数字的最小正整数的程序。下面是代码的逻辑解析&#xff1a; #include <iostream> #include <string> #include <cstring>using namespace std;int main() {string n; // 定义一个字符串变量nint fale 0; // 用于标记是否能…

Flask-SQLAlchemy 快速上手

原文地址: 在底部查看原文(阅读体验更好) 视频地址: BV1Hh4y1j7jM Flask-SQLAlchemy 是 flask 的一个拓展插件,专门添加对 SQLAlchemy 的支持(ORM,关系对象模型)。使用它可以在 flask 中使用对象直接与 SQLAlchemy 进行交互,大大简化了 SQLAlchemy 与 flask 结合使用的过…

HJ3 随机数

描述 明明生成了NN个1到500之间的随机整数。请你删去其中重复的数字&#xff0c;即相同的数字只保留一个&#xff0c;把其余相同的数去掉&#xff0c;然后再把这些数从小到大排序&#xff0c;按照排好的顺序输出。数据范围&#xff1a; 1≤n≤1000 &#xff0c;输入的数字大小…

企业形象片宣传片策划要从哪里展开

企业形象片宣传片是一种有效的营销工具&#xff0c;能够向潜在客户传达企业的核心价值观、品牌形象和产品服务。对于企业来说&#xff0c;一个成功的宣传片可以增加品牌知名度&#xff0c;提高销售额&#xff0c;并建立与客户的良好关系。然而&#xff0c;要想策划一部成功的企…

换行符转换

将\t\n、\n、多个\n\n\n...转换为\n\n。 import pandas as pd import re # 创建一个示例DataFrame data {msgText: [这是示例文本1&#xff0c;包含\t\n换行符,这是示例文本2&#xff0c;包含\n\n多个\n换行符,这是示例文本3&#xff0c;没有换行符]} df pd.DataFrame(data)…

题目:2833.距离原点最远的点

​​题目来源&#xff1a; leetcode题目&#xff0c;网址&#xff1a;2833. 距离原点最远的点 - 力扣&#xff08;LeetCode&#xff09; 解题思路&#xff1a; 遍历字符串&#xff0c;对 L&#xff0c;R 和 _ 字符计数。前两者计数结果之差的绝对值与 _ 字符的计数结果之和即为…

多语言开发(vant

参考&#xff1a;https://blog.csdn.net/qq_44649801/article/details/131878128?spm1001.2014.3001.5506 一、抛出字段对象A export default { } 二、引入汇总文件&#xff0c;&#xff08;主要的是 模块分割 汇总&#xff0c;对A 等的处理 export default { A&#xff0c;B,…

Redis RedLock算法和底层源码分析

Redlock红锁算法 官网地址&#xff1a;Distributed Locks with Redis | Redis 为什么要使用RedLock&#xff1f; 解释&#xff1a; 线程 1 首先获取锁成功&#xff0c;将键值对写入 redis 的 master 节点&#xff0c;在 redis 将该键值对同步到 slave 节点之前&#xff0c;mas…

使用 CSS 伪类的attr() 展示 tooltip

效果图: 使用场景: 使用React渲染后台返回的数据, 遍历以列表的形式展示, 可能简要字段内容需要鼠标放上去才显示的 可以借助DOM的自定义属性和CSS伪类的attr来实现 所有代码: <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-…

Navicat导入Excel数据顺序变了

项目场景&#xff1a; Navicat导入Excel数据 问题描述 从Excel表格中导入数据到数据库中。但是&#xff0c;在导入的过程中&#xff0c;我们常会发现数据顺序出现了问题&#xff0c;导致数据错位&#xff0c;给数据的处理带来了极大的麻烦。 原因分析&#xff1a; 这个问题的…

linux 在文件夹里搜索哪个文件包含一段内容

在 Linux 中&#xff0c;您可以使用 grep 命令来在文件夹里搜索包含特定内容的文件。grep 是一种强大的文本搜索工具&#xff0c;可以用于查找文件中包含特定字符串或正则表达式的行。 要在文件夹中搜索包含特定内容的文件&#xff0c;可以使用以下命令&#xff1a; grep -r …

vue2.X 中使用 echarts5.4.0实现项目进度甘特图

vue2.X 中使用 echarts5.4.0实现项目进度甘特图 效果图&#xff1a; 左侧都是名称&#xff0c;上面是时间&#xff0c;当中的内容是日志内容 组件&#xff1a; gantt.vue <template><div id"main" style"width: 100%; height: 100%"></…

【Java Web】利用Spring整合Redis,配置RedisTemplate

1. 在config中加入RedisConfig配置类 package com.nowcoder.community.config;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFacto…

贪心算法 - 一点了解

贪心的本质是选择每一阶段的局部最优&#xff0c;从而达到全局最优。 刷题或者面试的时候&#xff0c;手动模拟一下感觉可以局部最优推出整体最优&#xff0c;而且想不到反例&#xff0c;那么就试一试贪心。 贪心算法一般分为如下四步&#xff1a; 将问题分解为若干个子问题找…

Ansys Zemax | 用于照明设计中的光源

本课程提供照明系统中光源的介绍&#xff0c;作为照明系统光源的信息中心。本课是照明学习路径的第二课。在这一课中&#xff0c;将描述照明系统中的各种光源类型以及如何这些使用光源。光源是照明系统的起点和支点&#xff0c;可以说是照明设计中最关键的部分。 简介&#xff…