【刷题笔记】不要二+把字符串转换为整数

news2025/1/16 7:59:52

一、不要二

题目:

牛客网链接:不要二_牛客题霸_牛客网

描述

        二货小易有一个W*H的网格盒子,网格的行编号为0~W-1,网格的列编号为0~H-1。每个格子至多可以放一块蛋糕,任意两块蛋糕的欧几里得距离不能等于2。
        对于两个格子坐标(x1,y1),(x2,y2)的欧几里得距离为:( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) 的算术平方根。
        小易想知道最多可以放多少块蛋糕在网格盒子里。

输入描述

每组数组包含网格长宽W,H,用空格分割.(1 ≤ W、H ≤ 1000)

输出描述

输出一个最多可以放的蛋糕数

示例1

输入:3 2

输出:4

解析:

        本题的关键在于解析任意两块蛋糕的欧几里得距离不能等于2

        因为想知道存在多少块蛋糕在网格盒子里,我们可以利用条件将不满足要求的排除掉,剩余的就是可以放入盒子里的。

        根据条件,因为x1x2y1y2均为网格盒子对应二维数组的下标,为整数,所以就有下面的数字举例:

         但是+两边均是相同的数字相乘,排除后只剩下:

         所以,我们可以推导出如下的限制条件:

         我们的整体思路如下:根据输入的wh构建w*h的二维数组,首先全部初始化为1.然后每次根据i, j + 2  i + 2, j 去对应下标置为0(注意越界),统计1的个数即可。

解答:

#include <iostream>
#include <vector>
using namespace std;

int main()
{
    int w, h, count = 0;
    cin >> w >> h;
    vector<vector<int>> vv;
    vv.resize(w);  // 初始化行
    for(auto & v : vv) v.resize(h, 1);  // 初始化列
    for(int i = 0; i < w; ++i)
    {
        for (int j = 0; j < h; ++j)
        {
            if (vv[i][j] == 1)
            {
                ++count;
                // 根据欧几里得距离不等于2进行置零
                if (i + 2 < w) vv[i + 2][j] = 0;
                if (j + 2 < h) vv[i][j + 2] = 0;
            }
        }
    }
    cout << count << endl;
    return 0;
}

二、把字符串转换为整数

题目:

牛客网链接:把字符串转换成整数_牛客题霸_牛客网

描述

        将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为 0 或者字符串不是一个合法的数值则返回 0

        数据范围:字符串长度满足0≤n≤100 
        进阶:空间复杂度O(1)  ,时间复杂度O(n) 

注意

        ①字符串中可能出现任意符号,出现除 +/- 以外符号时直接输出 0

        ②字符串中可能出现 +/- 且仅可能出现在字符串首位。

输入描述

        输入一个字符串,包括数字字母符号,可以为空

返回值描述

        如果是合法的数值表达则返回该数字,否则返回0

示例1

输入:"+2147483647"

返回值:2147483647

示例2

输入:"1a33"

返回值:0

解析:

        字符串转整型,我们首先明确单个数字字符如何转为整数?可以利用ASCII码值进行转换,即每个数字字符-'0'就可以得到了。

        那么一个字符串从高位向低位(从左到右),我们就可以利用每次转换下来得数字加上先前计算出的数字*10。(递进关系)

        本题需要注意的是存在非数字字符和首字符可以是'+'、'-'的问题。首先在上面递进的时候我们自然需要判断是否非数字字符,是的话可以直接返回0,但是当首字符判断是+或者-任意一种,应该跳过首字符。

解答:

class Solution {
public:
    int StrToInt(string str) {
        if (str.empty()) return 0;
        int res = 0, sum = 0;
        int flag = 1;
        if (str[0] == '-')
        {
            flag = -1;
            res++;
        }
        else if (str[0] == '+') res++;
        for (;res < str.size(); ++res)
        {
            // 首先判断是否为非数字
            if (str[res] < '0' || str[res] > '9') return 0;
            sum = sum * 10 + str[res] - '0';
        }
        return sum * flag;
    }
};

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

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

相关文章

camunda表达式如何使用

在Camunda中&#xff0c;表达式是一种灵活的方式&#xff0c;可以用于在流程定义和表单中计算和处理数据。表达式可以在Camunda的各个环节中使用&#xff0c;例如服务任务、网关、表单、条件等。 以下是Camunda表达式的一些常见用途&#xff1a; 1、计算值&#xff1a;表达式可…

腾讯云轻量16核32G28M带宽服务器CPU流量性能测评

腾讯云轻量16核32G28M服务器3468元15个月&#xff0c;折合每月231元&#xff0c;28M公网带宽下载速度峰值可达3584KB/s&#xff0c;折合3.5M/秒&#xff0c;系统盘为380GB SSD盘&#xff0c;6000GB月流量&#xff0c;折合每天200GB流量。腾讯云百科来详细说下腾讯云轻量应用服务…

SeaweedFS学习笔记:架构和快速入门

目录 1. 介绍1.1 Components1.2 Master 服务1.3 Volume 服务1.4 Filer服务1.5 S3服务1.6 Volume的概念1.7 Collection的概念 2. 快速入门2.1 安装 SeaweedFS2.2 启动 Master 服务2.3 启动 Volume 服务2.4 快速启动一个Master服务和一个Volume服务2.5 测试 3. 参考 1. 介绍 1.1 …

asp.net汽车保养美容店维修管理系统

本系统汽车预约美容系统分为前台和后台两部分&#xff0c;具体功能如下 前台部分功能 1.注册登录&#xff0c;用户通过注册登录之后可以进行保养和美容项目的预约 2.新闻资讯&#xff0c;查看和汽车保养&#xff0c;美容相关的新闻资讯信息 3.美容查看&#xff0c;查看汽车美容…

6年测开经验,从功能测试到测试开发,每一步都深思熟虑...

蓦然回首&#xff0c;软件测试风风雨雨的这几年&#xff0c;起初每天的工作只是鼠标点点点&#xff0c;我还真不知道怎么办&#xff0c;闲的时候真的怀疑自己的存在价值&#xff0c;每天拿着7000的工资&#xff0c;飘荡在繁华的深圳&#xff0c;吃不饱也饿不死&#xff0c;未来…

【PWN · ret2libc】ret2libc1

ret2libc的第一题 目录 前言 一、动态链接 二、ret2libc原理 三、exp编写 干货 干货一&#xff1a;python下的ELF 干货二&#xff1a;strings看看有没有待选字符串 编写exp 总结 前言 本来是和学习ret2text\ret2shellcode\ret2syscall一样在网上找文字资源&#x…

28从零开始学Java之面向对象和面向过程到底有哪些区别?

作者&#xff1a;孙玉昌&#xff0c;昵称【一一哥】&#xff0c;另外【壹壹哥】也是我哦 千锋教育高级教研员、CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 壹哥相信&#xff0c;经过你对前面文章中技术点的学习&#xff0c;现在的你应该已经对Java具备了初步…

【UE】直升机沿样条线移动

效果 步骤 1. 将虚幻商城中的免费资产导入工程 下载完毕后可以看到如下文件 2. 新建一个Actor蓝图类&#xff0c;命名为“Track”&#xff0c;这个蓝图就是用来画样条线的 打开“Track”&#xff0c;添加样条组件 3. 打开“BP_West_Heli_AH64D” 在事件图表中先新建一个时间轴…

Unity冷知识:读取用户输入应该写在Update还是FixedUpdate里?

Unity冷知识&#xff1a;读取用户输入应该写在Update还是FixedUpdate里&#xff1f; 版权声明&#xff1a; 本文为“优梦创客”原创文章&#xff0c;您可以自由转载&#xff0c;但必须加入完整的版权声明文章内容&#xff0c;不得删减、修改、演绎相关学习资源见文末 一些人…

1.SpringCloud技术

SpringCloud01 1.认识微服务 随着互联网行业的发展&#xff0c;对服务的要求也越来越高&#xff0c;服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢&#xff1f; 1.0.学习目标 了解微服务架构的优缺点 1.1.单体架构 单体架构&#xff…

初识C++之线程库

目录 一、C中的线程使用 二、C的线程安全问题 1. 加锁 2. 变为原子操作 3. 递归里面的锁 4. 定时锁 5. RAII的锁 三、条件变量 1. 为什么需要条件变量 2. 条件变量的使用 2.1 条件变量的相关函数 2.2 wait函数 一、C中的线程使用 线程的概念在linux中的线程栏已经…

9个加密货币交易所被查封,交易所安全审计后仍不安全

美国联邦调查局和乌克兰警方查封了九个加密货币交易网站&#xff0c;这些网站为包括勒索软件参与者在内的诈骗者和网络犯罪分子洗钱提供了便利。 联邦调查局 FBI 在其公告中表示&#xff0c;该行动是在虚拟货币响应小组、乌克兰国家警察和该国法律检察官的帮助下进行的。 此次…

ai皮带跑偏撕裂监测算法 yolov7

ai皮带跑偏撕裂监测系统算法基于yolov7网络模型人工智能视觉技术&#xff0c;ai皮带跑偏撕裂监测算法模型自动识别现场画面中传送皮带撕裂、跑偏、偏移等情况&#xff0c;立即告警抓拍存档同步回传后台。YOLO 的核心思想就是把目标检测转变成一个回归问题&#xff0c;利用整张图…

Git入门学习

Git是什么&#xff1f; 是一种免费开源的分布式版本控制系统&#xff0c;区别于集中式挂历系统&#xff08;SVN,CVS&#xff09;的是分布式每人都有一个“档案馆”&#xff0c;而集中式是只有一个“档案馆”。 这样的话&#xff0c;如果你使用git进行开发&#xff0c;感觉自己…

多层PCB层叠结构

在设计多层PCB电路板之前&#xff0c;设计者需要首先根据电路的规模、电路板的尺寸和电磁兼容&#xff08;EMC&#xff09;的要求来确定所采用的电路板结构&#xff0c;也就是决定采用4层&#xff0c;6层&#xff0c;还是更多层数的电路板。确定层数之后&#xff0c;再确定内电…

全景丨0基础学习VR全景制作,平台篇第18章:热点功能-音频

大家好&#xff0c;欢迎观看蛙色VR官方——后台使用系列课程&#xff01; 功能说明 应用场景 热点&#xff0c;指在全景作品中添加各种类型图标的按钮&#xff0c;引导用户通过按钮产生更多的交互&#xff0c;增加用户的多元化体验。 音频热点&#xff0c;即点击热点后会直接播…

低代码开发重要工具:jvs表单动态字段配置方式

在表单中常常会有动态字段的场景&#xff0c;也就是如下图所示&#xff0c;根据一个字段的内容选项去控制另外字段的内容展示 配置的思路&#xff1a;根据第一个单选框选择的内容&#xff0c;通过关联筛选的方式去选择第二个单选框的内容&#xff0c;那么第二个单选框的物理存储…

K8s基础7——DaemonSet控制器、Job批处理调度、Cronjob定时调度

文章目录 一、DaemonSet二、Job三、Cronjob 一、DaemonSet 控制器介绍&#xff1a; DaemonSet 可以确保全部&#xff08;或者某些&#xff09;节点上运行一个 Pod 的副本。当有节点加入集群时&#xff0c; 也会给这新节点新增一个 Pod 。当有节点从集群移除时&#xff0c;此节点…

redis最大连接数查询与设置

redis客户端连接数 redis通过监听一个TCP端口或socket的方式接收来自客户端的连接&#xff0c; 当与客户端建立连接后&#xff0c;redis内部会进行如下操作&#xff1a; (1)客户端socket会被设置为非阻塞模式&#xff0c;因为redis在网络时间处理上采用的是非阻塞多路复用模…

基于JavaWeb实现的汽车维修管理系统

【简介】 本系统基于springboot mybatis jps架构开发&#xff0c;前后端分离&#xff0c;开发环境为jdk1.8、mysql、maven。系统功能主要分为汽车维修管理、配件管理、财务管理、基础数据管理、系统维护5大模块。 【功能结构】 【技术架构】 系统架构&#xff1a;springboot …