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

从右到左 vs 从左到右:字符串转整数的两种方式

假设字符串:"123"

  • 正常从左到右(顺序处理)是:

    • '1' 是百位,1 * 100

    • '2' 是十位,2 * 10

    • '3' 是个位,3 * 1

    • 结果是 123


而这段代码是从右往左处理:

int num = 0;
int sign = 1;
for (int i = strlen(expr)-1; i >= 0; i--) {num += (expr[i] - '0') * sign;sign *= 10;
}
  • i = 2 → '3':3 × 1 → num = 3

  • i = 1 → '2':2 × 10 → num = 23

  • i = 0 → '1':1 × 100 → num = 123

换种方式(从左到右)写就会是这样:

int num = 0;
for (int i = 0; i < strlen(expr); i++) {num = num * 10 + (expr[i] - '0');
}

http://www.xdnf.cn/news/158.html

相关文章:

  • Web 前端包管理工具深度解析:npm、yarn、pnpm 全面对比与实战建议
  • 图+文+语音一体化:多模态合成数据集构建的实战与方法论
  • wordpress 垂直越权(CVE=2021-21389)漏洞复现详细教程
  • PHP腾讯云人脸核身获取FaceId
  • 《AI大模型应知应会100篇》第24篇:限定输出格式:如何让AI回答更加结构化
  • GCD算法的学习
  • 第三阶段面试题
  • Git常用命令分类汇总
  • 如何学习和研究量子计算与量子计算机:从理论到实践的完整路径
  • MySQL+Redis实战教程:从Docker安装部署到自动化备份与数据恢复20250418
  • Qt官方案例知识点总结(图形视图——Colliding Mice)
  • 人脸扫描黑科技:多相机人脸扫描设备,打造你的专属数字分身
  • 学术AI工具推荐
  • 基于WebRTC技术的EasyRTC:支持任意平台设备的实时音视频通信解决方案
  • 科技天眼守望农田:珈和卫星遥感监测赋能智慧农业,护航粮食安全新未来
  • 替代升级VMware | 云轴科技ZStack构建山西证券一云多芯云平台
  • python有序列表
  • Excel提取图片并自动上传到文件服务器(OOS),获取文件链接
  • Docker用model.config部署及更新多个模型
  • 【基础知识补充】标准库类型:string和vector
  • JDBC 与 MyBatis 详解:从基础到实践
  • 07_Docker 资源限制
  • 软件研发技术团队管理规范
  • 安卓手机如何改ip地址教程
  • ETL数据集成平台在交通运输行业的五大应用场景
  • 旅游资源网站登录(jsp+ssm+mysql5.x)
  • LeetCode 259 题全解析:Swift 快速找出“满足条件”的三人组
  • RocketMQ 的详细使用教程
  • 【多目标进化算法】NSGA-II 算法(结合例子)
  • 【C++】 —— 笔试刷题day_19