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

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

题目链接:8. 字符串转换整数 (atoi) - 力扣(LeetCode)

感觉题目就好难读懂,自己尝试了一下可能是方法太笨就太复杂,并且只能通过一大半的用例。不想折腾了直接copy文心一言代码(deepseek的代码不能完全通过)

int myAtoi(char *str) {
    int index = 0;
    int sign = 1;
    int result = 0;
    
    // Step 1: Skip all leading whitespace characters
    // 1. 跳过前导空格
    while (isspace(str[index])) {
        index++;
    }
    
    // Step 2: Check if the next character is '-' or '+'
    // 2. 处理符号
    if (str[index] == '+' || str[index] == '-') {
        sign = (str[index] == '-') ? -1 : 1;
        index++;
    }
    
    // Step 3: Convert the consecutive digits to an integer
    // 3. 读取数字字符
    while (isdigit(str[index])) {
        int digit = str[index] - '0';
 
        // Step 4: Handle overflow and underflow
        // 4. 检查是否溢出
        if (result > (INT_MAX - digit) / 10) {
            return (sign == 1) ? INT_MAX : INT_MIN;
        }
        
        result = result * 10 + digit;
        index++;
    }
    
    // Apply the sign
    // 返回最终结果
    return result * sign;
}

相关文章:

  • 【技术白皮书】内功心法 | 第二部分 | Telnet远程登录的工作原理
  • 大模型:定义与主流架构全解析
  • 【TVM教程】为 Mobile GPU 自动调优卷积网络
  • SwiftUI 让视图自适应高度的 6 种方法(四)
  • Kubernetes Pod的生命周期概述
  • LearnOpenGL-笔记-其二
  • DeepSeek-实用集成大礼包
  • 基于某著名企业IPD与质量管理体系融合的研发质量管理方案(64页PPT)
  • 【保姆级教程】使用 oh-my-posh 和 clink 打造个性化 PowerShell 和 CMD
  • 十二天-双指针技术:链表问题的高效解法
  • springboot433-基于SpringBoot的流浪猫爱心救助系统(源码+数据库+纯前后端分离+部署讲解等)
  • Fast DDS Security--多方密钥协商协议
  • 人脸识别之数据集中 PI20 和 CFMT 之间关联的模型预测贝叶斯(Python+论文代码实现)
  • 接口使用实例和Object类及内部类
  • 本地部署 DeepSeek R1 的几种常见方法
  • 在 UniApp 开发的网站中使图片能够缓存,不一直刷新
  • 委外订单不能删除提示领料未发量不能小于零
  • 【 PyQt】事件的触发:信号与槽
  • GitHub 项目版本管理与 Release 发布流程记录
  • HTTPS工作原理与安全机制详解(仅供参考)
  • 制造四十余年血腥冲突后,库尔德工人党为何自行解散?
  • 人民日报仲音:大力纠治违规吃喝顽瘴痼疾
  • 75万买299元路由器后续:重庆市纪委、财政局、教委联合调查
  • 小米SU7 Ultra风波升级:数百名车主要求退车,车主喊话雷军“保持真诚”
  • 韩国总统选战打响:7人角逐李在明领跑,执政党临阵换将陷入分裂
  • 竞彩湃|热刺、曼联一周双赛不易,勒沃库森能否欢送阿隆索