leecode刷题学习——08字符串转换整数(atoi)

LeeCode每日一题–罗马数字转整数 【前言】坚持日更LeeCode刷题系列     不积跬步,无以至千里;不积小流,无以成江海。愿与诸君共勉!   【题目】13.罗马数字转整数   题目描述:罗马数字包含以下七种字符:I ,V , X , L, C , D 和 M 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000   例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 立即下载

无重复字符的最长子串



题意介绍

在这里插入图片描述
在这里插入图片描述

解题思路

  1. 思路——>第一:考虑字符串特点,根据示例可得,字符串可能首字符为空,首字符为‘+’,‘-’区分正负,若为字符则直接返回0。
  2. 第二:根据ASCII码值可得,当chars[i] < 48 || chars[i] > 57为字符,返回0。
  3. 第三:在写算法时尽量避免使用string内置的方法,性能较低,且因为string是不可变的,trim()方法会返回新的变量。
  4. 解题思路——>采用一个index来记录字符串的起始位置,首先进行判空,若字符为空则index+=1,直到遇到‘+’,‘-’,或者数字,遇到数字默认为正。
  5. 使用sign变量来判断该字符是正还是负。
  6. 声明一个ans 来接受符合条件的参数。
  7. 题目中说:环境只能存储 32 位大小的有符号整数,因此,需要提前判断乘以 10 以后是否越界

本题代码

public int myAtoi(String str) {
        //将该字符转换为char数组
        char[] chars = str.toCharArray();
        //设置index为该字符串目标数字的起始位置
        int index = 0;
        int n = chars.length;
        //根据sign变量判断该目标值是正还是负
        int sign = 1;
        //当该字符出现空时,则index起始位置+1.
        while (index < n && chars[index] == ' ') {
            index++;
        }
        //极端情况:当index==n,也就是当前字符串为空串时,返回0
        if (index == n) {
            return 0;
        }
        //若该字符串有‘+’,‘-’,或者没有前者字符,通过这些条件判断sign变量的值来得知该函数的目标值是正还是负,通过ans=ans*sign即可。
        if (chars[index] == '+') {
            sign = 1;
            //若出现‘+’,‘-’字符,则从下一个字符开始遍历。比如str="-123",则应该从1这个位置开始遍历,故而index++;
            index++;
        } else if (chars[index] == '-') {
            sign = -1;
            index++;
        }
        int ans = 0;
        //从index->str.length遍历字符串,根据判断条件筛选数字得到目标值,也可根据正则表达式获取。
        for (int i = index; i < n; i++) {
            char currChar = chars[index];
            if (chars[i] < 48 || chars[i] > 57) {
                break;
            }
            // 题目中说:环境只能存储 32 位大小的有符号整数,因此,需要提前判断乘以 10 以后是否越界
            if (ans > Integer.MAX_VALUE / 10 || (ans == Integer.MAX_VALUE / 10 && (currChar - '0') > Integer.MAX_VALUE % 10)) {
                return Integer.MAX_VALUE;
            }
            if (ans < Integer.MIN_VALUE / 10 || (ans == Integer.MIN_VALUE / 10 && (currChar - '0') > -(Integer.MIN_VALUE % 10))) {
                return Integer.MIN_VALUE;
            }
            ans = ans * 10 + sign * (currChar - '0');
            index++;
        }

        return ans;
Java实现 LeetCode 541 反转字符串 II(暴力大法) 541. 反转字符串 II 给定一个字符串和一个整数 k,你需要对从字符串开头算起的每个 2k 个字符的前k个字符进行反转。如果剩余少于 k 个字符,则将剩余的所有全部反转。如果有小于 2k 但大于或等于 k 个字符,则反转前 k 个字符,并将剩余的字符保持原样。 示例: 输入: s = “abcdefg”, k = 2 输出: “bacdfeg” 要求: 该字符串只包含小写的英文字母。 给定字符串的长度和 k 在[1, 10000]范围内。 PS: 暴力 欢迎评论 class Solution { public static void swap(char [] a,int begin 立即下载

相关推荐

全志T133-s3(Tina Linux)下RTL8723DS WiFi驱动移植与调试实战

本文详细介绍了在全志T133-s3平台(Tina Linux)上移植RTL8723DS WiFi驱动的完整流程,包括硬件连接、驱动源码获取、内核配置、系统适配、设备树配置以及常见问题排查。通过实战案例,帮助开发者快速解决SDIO接口通信、固件加载、电源管理等关键问题,实现稳定的WiFi功能。

weixin_30505225的博客 507

判断一个char是否是由字母数字组成

if((chars[i]57)&(chars[i]122)||((chars[i]>90)&(chars[i] { }

成大事不在于力量多少,而在能坚持多久。 1218

OPC UA 服务端的模拟工具及客户端工具

详细介绍如何使用 Prosys OPC UA Simulation Server 作为 OPC UA 服务端的模拟工具来生成数据模型,并使用 Softing OPC UA Client 作为客户端工具,直观地查看和验证模拟生成的数据。

weixin_44462773的博客 9867

leecode刷题(16)-- 字符串转换整数

leecode刷题(16)-- 字符串转换整数 字符串转换整数 描述: 请你来实现一个 atoi 函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。...

weixin_30730151的博客 261

华硕ROG玩家国度安装Ubuntu双系统避坑指南:安全启动密钥那些事儿

本文详细解析了在华硕ROG玩家国度设备上安装Ubuntu双系统时,如何正确处理BIOS中的安全启动(Secure Boot)与密钥管理,避免常见的引导失败和Windows系统无法启动问题。指南提供了从数据备份、启动盘制作到BIOS精细设置(如将OS Type改为Other OS而非简单关闭Secure Boot)以及分区规划的完整流程,确保两个系统都能稳定共存。

weixin_29219189的博客 754

SAP MM 物料描述MAKTX 40个字符不够用的问题处理

SAP物料描述表,长度40个字符一般情况下,40个字符在描述中也够用了,但是要加上规格之类的额外描述就不一定了,特别是对于辅助件-刀具。解决方案一:对maktx增强,换成CHAR80或者CHAR100的,但是风险较大,涉及到好多地方,另外SAP+ 算号器 也不支持。解决方案二:增强字段。内部顾问,建议在 那就在这里加一个字段,具体过程如下:1、创建域2、创建架构3、附加架构4、GUI 设置 5、后台设置6、MASS/MM17字段新增。过程1、创建域 SE112、创建结构 se11 3、MARA附加架构

GAVIN 4728

leecode 8 字符串转换整数 (atoi)

tag保存的是数的符号,无符号长长整型的 res 用来暂时保存字符串里的数据(不含符号位) 思路比较简单:空格都pass掉以后,如果第一个字符不是数字,返回0; 否则,这一位如果是符号,把符号存到tag,从下一位开始取数,如果没有符号位,直接开始取数; 数取完了以后(有两种情况,①后面又出现了字母 ②字符串结束了),内循环和外循环都要break,所以设置一个flag位,当内循环break了 立马外...

weixin_43330995的博客 342

RTK_ROS_导航(1): GNSS里程计

1. RTK 配置 4G CORS + 4G 网络 + 户外有信号,不能实现RTK,就恢复出厂设置 输出信息包含(一般需要三个同时打开): GAPPA:包含位置信息 GPVTG:包含速度信息 GPHDT:包含定向的朝向信息 2. ROS驱动 驱动安装sudo apt install ros-noetic-nmea-navsat-driver 运行,需要修改该功能包的启动端口,会自动解析上面的3个RTK语句信息roslaunch nmea_navsat_driver nmea_serial_d

旋风小短腿 4265

图解LeetCode08:字符串转换整数(atoi)

LeetCode08:字符串转换整数(atoi) 请你实现一个myAtio(String s)函数,使其能将字符串转换成一个32位有符号整数(类似c/c++中的atoi函数) 函数myAtoi(String s)的算法如下 读入字符串并丢弃无用的前导空格 检查下一个字符(假设没有到达字符末尾)为正还是符号,读取该字符(如果有)。确定最终结果是负数还是正数。如果两者都不存在,则假定结果为正 读入下一个字符,直到到达下一个非数字字符或者达到输入的结尾。字符串的其余部分将被忽略 将前面步骤读入的这些数字转换为整

weixin_46429290的博客 455

【数据集】基于ubESTARFM法的100m 地温LST数据集(澳大利亚)

【数据集】基于ubESTARFM法的100m 地温LST数据集(澳大利亚)

WW、forever的博客 265

独家开源|RK3588 平台 YOLOv5 Android 源码级解析:NPU 量化、多线程与目标跟踪实战

本文将带你完成一个完整的AI视觉项目:在搭载RK3588芯片的Android开发板上运行实时目标检测与跟踪应用。实战目标:成功运行官方YOLOV5摄像头实时检测案例技术深度:深入理解RKNN开发框架和源码实现核心技能:掌握NPU推理、多线程并发、目标跟踪等关键技术。

m0_71589036的博客 193

LeetCode 08:字符串转换整数 (atoi)(Java实现)

LeetCode 08:字符串转换整数(atio)(Java实现) 题目 请你来实现一个 atoi 函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数...

qq_45093368的博客 326

XSS漏洞之PDF生成:从XSS到服务端任意文件读取

XSS是最为常见的Web漏洞之一,多年来连续入选OWASP TOP10,相信大家都耳熟能详。 它是一种代码注入类的攻击,是一种客户端侧的攻击,攻击者通过在Web应用中注入恶意JavaScript代码,通过点击URL,最终在受害者浏览器端执行的一种漏洞。主要有反射型XSS、存储型XSS、基于DOM的XSS三类。XSS一些比较常规的危害大概有:重定向浏览器、窃取Cookie、浏览器劫持等。本文章侧重于发现XSS后的进一步利用。 主要介绍在某次实际测试过程中,发现XSS漏洞之后,如何进一步的利用,最终通过XSS达

计算机毕业论文源码,学生个人网页制作html源码。贴近用户做网络推广和互联网优化。 3780

Leetcode 08 字符串转换整数 (atoi)

实现一个atoi函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。 该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可以被...

Iridescence 142

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

leetcode 08:字符串转换整数 (atoi)(python)

腾讯精选练习(50 题)Day5 leetcode 08:字符串转换整数 (atoi)(python)

nanashi_F的博客 253

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

LeetCode8 字符串转换整数 Atoi

LeetCode8 字符串转换整数 Atoi 题目地址:https://leetcode-cn.com/problems/reverse-integer/ 题目难度:中等 请你来实现一个atoi函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,...

沙码龙 256

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

算法八:字符串转换整数 (atoi)

一天一算法

weixin_40741512的博客 183

LeetCode08:字符串转换成整数

请你来实现一个atoi函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。 该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可...

weixin_30586085的博客 116

【leetcode 08. 字符串转换整数 (atoi)】

7. 整数反转题目提前判断,不使用long、double等类型 题目 请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。 函数 myAtoi(string s) 的算法如下: 读入字符串并丢弃无用的前导空格 检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。 读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符.

luna0_0的博客 129

Leetcode08-字符串转换整数 (atoi)

一、题目 请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。 函数 myAtoi(string s) 的算法如下: 读入字符串并丢弃无用的前导空格 检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。 读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。 将前面步骤读入的这些数字转换为整数(即,“1

m0_51801058的博客 392

LeetCode08字符串转换整数

题目 请你来实现一个 atoi 函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。 该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可...

weixin_42702903的博客 106

LeetCode-8.字符串转换整数

题目描述: 请你来实现一个 atoi 函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。 该字符串除了有效的整数部分之后也可能会存在多余的字...

骚小孩啊丶 501

LeetCode004:字符串转整数 (atoi)

一、写在前面 LeetCode 第一题两数之和传输门:LeetCode001:两数之和 LeetCode 第二题两个排序数组的中位数传输门:LeetCode002:两个排序数组的中位数 LeetCode 第三题最长回文子串传输门:eetCode003:最长回文子串 今天给大家分享的是LeetCode 数组与字符串 第四题:字符串转整数 (atoi),为面试而生,期待你的加入。 二、今日题目 实现 ...

简说Python的博客 2809

LeetCode题集-8 - 字符串转换整数 (atoi)

合集 - LeetCode 题集(9)1.LeetCode题集-1- 两数之和08-312.LeetCode题集-2 - 两数相加09-053.LeetCode题集-3 - 无重复字符的最长子串09-094.LeetCode题集-4 - 寻找两个有序数组的中位数,图文并茂,六种解法,万字讲解09-165.LeetCode题集-5 - 最长回文子串(一)12-086.LeetCode题集-5 - ...

weixin_40727436的博客 124

力扣(LeetCode)8. 字符串转换整数 (atoi)(2022.01.08)

请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。 函数 myAtoi(string s) 的算法如下: 读入字符串并丢弃无用的前导空格 检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。 读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。 将前面步骤读入的这些数字转换为整数(即,“123” -

ChaoYue_miku的博客 267

Leecode刷题之路第八天之字符串转换整数

1.atoi函数:(表示 ascii to integer)是把字符串转换成整型数的一个函数,应用在计算机程序和办公软件中。代码示例:(Java)代码示例:(Java)

工一木子 304
上一篇: leecode刷题学习——07整数反转
下一篇: Java多线程编程学习——01线程的创建方式和生命周期
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值