当前位置: 首页 > news >正文

【CT】LeetCode手撕—8. 字符串转换整数 (atoi)

目录

  • 题目
  • 1- 思路
  • 2- 实现
    • ⭐8. 字符串转换整数 (atoi)——题解思路
  • 3- ACM 实现


题目

  • 原题连接:8. 字符串转换整数 (atoi)

1- 思路

思路

  • x 的平方根 ——> 利用二分 ——> 二分的 check条件为 k^2 <= x

2- 实现

⭐8. 字符串转换整数 (atoi)——题解思路

在这里插入图片描述

class Solution {public int myAtoi(String s) {int res = 0;int len = s.length();int k = 0;// 1. 判空while(k<len && s.charAt(k) ==' ') k++;if(k==len) return 0;// 2.判断正负int minus = 1;if(s.charAt(k) == '-'){minus = -1;k++;}else if (s.charAt(k)=='+'){k++;}// 3. 判断越界while(k<len && s.charAt(k) >='0' && s.charAt(k)<='9'){int x = s.charAt(k)-'0';if(minus > 0 && res > (Integer.MAX_VALUE - x) / 10 ) return Integer.MAX_VALUE;if(minus < 0 && -res < (Integer.MIN_VALUE + x) / 10) return Integer.MIN_VALUE;res = res*10 + x;k++;}res = res*minus;return res;}
}

3- ACM 实现

public class myAtoi {public static int myAtoi(String s){int len = s.length();int k = 0;int res = 0;// 1. 判空while(k<len && s.charAt(k)==' ') k++;if(k==len) return 0;// 2. 判断 minusint minus = 1;if(s.charAt(k) == '-'){minus = -1;k++;}else{k++;}// 3. 判断是否越界while (k<len && s.charAt(k)>='0' && s.charAt(k)<='9'){int x = s.charAt(k)-'0';if(minus > 0 && res > (Integer.MAX_VALUE - x) / 10 ) return Integer.MAX_VALUE;if(minus < 0 && -res < (Integer.MIN_VALUE + x) / 10) return Integer.MIN_VALUE;res = res*10+x;k++;}res = res*minus;return res;}public static void main(String[] args) {System.out.println("输入你需要转换的字符串");Scanner sc = new Scanner(System.in);String input = sc.nextLine();System.out.println("结果是"+myAtoi(input));}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 建立共享linux第三方软件仓库
  • STM32利用FreeRTOS实现4个led灯同时以不同的频率闪烁
  • C++:组合和继承的区别
  • LeetCode HOT100(三)滑动窗口
  • 【Spring】springSecurity中WebSecurityConfigurerAdapter类中configure方法(5版本以下)
  • 2022 RoboCom省赛题目解析
  • Git: fatal: cannot lock ref‘HEAD‘: Unable to create
  • SQL 存储过程
  • 短视频矩阵:批量发布的秘密揭秘
  • SpringBoot常见注解
  • 数列分块<2>
  • int类型变量表示范围的计算原理
  • RISC-V指令集架构详细组成
  • ASP.NET Core 使用Log4net
  • elasticSearch快速了解
  • 自己简单写的 事件订阅机制
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • 【技术性】Search知识
  • 2017年终总结、随想
  • C++类的相互关联
  • git 常用命令
  • Java 内存分配及垃圾回收机制初探
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • javascript数组去重/查找/插入/删除
  • Linux下的乱码问题
  • MySQL用户中的%到底包不包括localhost?
  • Redis 中的布隆过滤器
  • swift基础之_对象 实例方法 对象方法。
  • text-decoration与color属性
  • underscore源码剖析之整体架构
  • Vue.js 移动端适配之 vw 解决方案
  • 机器学习中为什么要做归一化normalization
  • 记一次删除Git记录中的大文件的过程
  • 聊聊redis的数据结构的应用
  • 目录与文件属性:编写ls
  • 漂亮刷新控件-iOS
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 你对linux中grep命令知道多少?
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​经​纬​恒​润​二​面​​三​七​互​娱​一​面​​元​象​二​面​
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • # 消息中间件 RocketMQ 高级功能和源码分析(七)
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • (2)STL算法之元素计数
  • (3)医疗图像处理:MRI磁共振成像-快速采集--(杨正汉)
  • (leetcode学习)236. 二叉树的最近公共祖先
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (算法)N皇后问题
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (学习总结16)C++模版2
  • (转)关于如何学好游戏3D引擎编程的一些经验