87. 把字符串转换成整数

news2024/12/28 20:09:59

目录

链接:

题目:

思路:

代码:

图片:


链接:

原题链接

题目:

请你写一个函数 StrToInt,实现把字符串转换成整数这个功能。

当然,不能使用 atoi 或者其他类似的库函数。

数据范围

输入字符串长度 [0,20][0,20]。

样例

输入:"123"

输出:123

注意:

你的函数应满足下列条件:

  1. 忽略所有行首空格,找到第一个非空格字符,可以是 ‘+/−’ 表示是正数或者负数,紧随其后找到最长的一串连续数字,将其解析成一个整数;
  2. 整数后可能有任意非数字字符,请将其忽略;
  3. 如果整数长度为 00,则返回 00;
  4. 如果整数大于 INT_MAX(231−1231−1),请返回 INT_MAX;如果整数小于INT_MIN(−231−231) ,请返回 INT_MIN;

思路:

改了英文输入法之后顺畅多了,计数器的使用,数据范围的选择,因为可能会超出int的范围,所以res选择long long 类型,字符串跳过前面所有的空格,然后遇到+就把k(计数器)加一,遇到-把计数器加一,并且把minus更新为-1,然后把一个一个的字符数字转换成数字,就是减去字符0就可以了,用×10的方法就可以得到这个完整的数字了,这是一个模板,记住就好了.

如果大于INT_MAX 就让答案等于INT_MAX,INT_MIN同理,在遍历字符串的时候,如果答案超过了INT_MAX,就跳出循环,一直循环按道理说也不会超时啊,特例就是样例数据超过了long long,溢出之后可能会小于INT_MAX,所以会和标准答案输出不一样,所以需要注意一下

代码:

class Solution {
public:
    int strToInt(string str) {
        int k=0;
        long long res=0;
        int minus=1;
        while(k<str.size()&&str[k]==' ')
        {
            k++;
        }
        if(str[k]=='+')
        {
            k++;
        }
        if(str[k]=='-')
        {
            k++;
            minus=-1;
        }
        while(k<str.size()&&str[k]>='0'&&str[k]<='9')
        {
            res=res*10+(str[k]-'0');
            k++;
            if(res>=INT_MAX)
            {
                break;
            }
        }
        res=res*minus;
        if(res>=INT_MAX)
        {
            res=INT_MAX;
        }
        if(res<=INT_MIN)
        {
            res=INT_MIN;
        }
        return (int)res;
    }
};

图片:

 

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

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

相关文章

摆脱基础设施束缚,亚马逊云科技提出生成式AI方法论

“未来近在咫尺&#xff0c;只不过时隐时现 (The future is here, its just not evenly distributed yet.)”--亚马逊云科技全球产品副总裁Matt Wood博士引用“赛博朋克之父” William Gibson 的一句名言来表达生成式AI的发展现状。 自去年底ChatGPT惊艳众人开始&#xff0c;这…

云原生高性能API网关,选Apache APISIX还是Nginx Plus

文章首发地址 Apache APISIX 对比 Nginx Plus APISIX 和 Nginx Plus 都是高性能的 API 网关&#xff0c;具有类似的特点&#xff0c;如可扩展性、插件化、负载均衡、反向代理等。下面对 APISIX 和 Nginx Plus 进行对比&#xff1a; 开源授权&#xff1a;APISIX 是 Apache 开…

Java阶段五Day05

Java阶段五Day05 文章目录 Java阶段五Day05问题解析无法启动Naocs Nacos服务注册发现Nacos运行架构nacos-server是一个服务进程 配置注册服务端客户端csmall-for-jsd-business-adapter 整合nacos-clientyaml详细配置注册信息在nacos中的内存状态多实例注册服务抓取&#xff08;…

五大引擎全新升级!轻流 5.0 正式发布

轻流的5.0版本&#xff0c;一个“陪伴企业成长的一站式开发平台”&#xff0c;它将更加灵活、更加开放&#xff0c;同时更加低门槛。 ——轻流联合创始人&CPO 严琦东 7月6日&#xff0c;在一年一度的无代码无边界 202376Day 轻流无代码探索者大会上&#xff0c;轻流联合创…

SpringMVC实现对页面的访问和跳转~

初识MVC: MVC是一种软件架构的思想&#xff0c;将软件按照模型&#xff0c;视图&#xff0c;控制器来划分 M&#xff1a;Model&#xff0c;模型层&#xff0c;指工程中的JavaBean,作用是处理数据 JavaBean分为两类&#xff1a; 一类称为实体类Bean:专门存储业务数据的&…

Java 中线程相关的各种锁

一、Java对象与锁 1、对象结构 2、对象头的 Mark Word 二、锁介绍 1、概念和种类 1、乐观锁 不加锁&#xff0c;在使用数据时判断数据是不是最新。常用CAS算法实现 2、自旋锁 与 适应性自旋锁 两者并不是锁&#xff0c;而是锁提供的处理方式。 自旋锁&#xff08;JDK1.4&a…

Sentinel 熔断与限流

文章目录 1 是什么&#xff1f;2 特征3 特性4 与Hystrix的区别5 两个部分6 应用6.1 依赖6.2 配置文件 7 流量配置规则7.1 直接&#xff08;默认&#xff09;7.2 关联7.3 Warm Up 预热7.4 排队等待 8 熔断降级8.1 概述RT(平均响应时间&#xff0c;秒级)异常比列(秒级)异常数(分钟…

python-cv2模块安装

1.自动安装 如果网络环境好&#xff1a; pip install opencv-python2.卸载与安装指定版本 卸载opencv pip uninstall opencv-python安装指定版本的cv 指定版本为&#xff1a;4.5.4.60 pip install opencv-python 4.5.4.603.下载安装包安装 从官网下载正确安装包安装&#x…

【Linux工具】编译器、调式器、项目自动化构建工具以及git的使用2(make/makefile和git的基本使用)

【Linux工具】编译器、调式器、项目自动化构建工具以及git的使用2&#xff08;make/makefile和git的基本使用&#xff09; 目录 【Linux工具】编译器、调式器、项目自动化构建工具以及git的使用2&#xff08;make/makefile和git的基本使用&#xff09;背景make和makefile的用法…

Proxy-Reflect使用详解

1 监听对象的操作 2 Proxy类基本使用 3 Proxy常见捕获器 4 Reflect介绍和作用 5 Reflect的基本使用 6 Reflect的receiver Proxy-监听对象属性的操作(ES5) 通过es5的defineProperty来给对象中的某个参数添加修改和获取时的响应式。 单独设置defineProperty是只能一次设置一…

AppStorage, OnboardingView 的示例

1. AppStorage 数据简单存储的实现 /// 应用程序数据简单存储 struct AppStorageBootcamp: View {//State var currentUserName: String?AppStorage("name") var currentUserName: String?var body: some View {VStack(spacing: 20) {Text(currentUserName ?? &…

Ghostscript开源PDF库中发现关键漏洞

在Linux中广泛使用的PostScript语言和PDF文件开源解释器Ghostscript被发现存在严重远程代码执行漏洞。 该漏洞被标记为CVE-2023-3664&#xff0c;CVSS v3评级为9.8&#xff0c;影响10.01.2之前的所有Ghostscript版本&#xff0c;10.01.2是三周前发布的最新版本。 据Kroll公司…

深入理解netfilter和iptables

目录 Netfilter的设计与实现 内核数据包处理流 netfilter钩子 钩子触发点 NF_HOOK宏与Netfilter裁定 回调函数与优先级 iptables 内核空间模块 xt_table的初始化 ipt_do_table() 复杂度与更新延时 用户态的表&#xff0c;链与规则 conntrack Netfilter(结合iptable…

基于C语言设计的足球信息查询系统

完整资料进入【数字空间】查看——baidu搜索"writebug" 需求分析与概要设计 2.1 项目说明 我们小组的选题主要是面向足球爱好者&#xff0c;在普通社交软件的基础之上&#xff0c;围绕足球的主题展开设计&#xff0c;以便于他们能够更好的交流相关的话题&#xff…

高效编程的捷径:HbuilderX的独特之处

目录 引言HbuilderX的功能HbuilderX的优点HbuilderX的缺点总结 HBuilderX 官网 引言 在当今科技发展日新月异的时代&#xff0c;软件开发已成为一个极富挑战性且高需求的领域。为了在竞争激烈的市场中脱颖而出&#xff0c;程序员们需要掌握一系列高效编程的技巧和工具。在这个过…

谈一谈LLM在推荐域的一些理解

作者&#xff1a;陈祖龙(葬青) 一、前言 最近大模型真的很火&#xff0c;从个人到公司&#xff0c;各行各业都在学习大模型、总结大模型和尝试应用大模型。大模型其实不是一个新的产物&#xff0c;已经在NLP发展了很多年。ChatGPT的诞生&#xff0c;经验的效果震惊了所有人&…

ES系列--es初探

一、前言 一般传统数据库&#xff0c;全文检索都实现的很鸡肋&#xff0c;因为一般也没人用数据库存文本字段。进 行全文检索需要扫描整个表&#xff0c;如果数据量大的话即使对 SQL 的语法优化&#xff0c;也收效甚微。建 立了索引&#xff0c;但是维护起来也很麻烦&#xff0…

人工智能-电脑如何像人一样思考?

发展历史 在电影如 终结者、机械公敌 中&#xff0c;机器人为什么能够像人一样思考&#xff1f;其实这就是人工智能。人工智能多方面&#xff1a;例如人脸识别系统、肺部影响CT&#xff0c;手机中的美颜、垃圾邮件拦截、自动驾驶 。 上世纪30-50年代&#xff0c;随着计算机科…

服务器如何查库磁盘情况?

查库磁盘情况 du -h --max-depth1 ./ | sort -hr

九九乘法表案例

for循环嵌套 代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</titl…