【leetcode】# 7 整数翻转 Rust Solution
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21
注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
Rust Solution:
1 fn reverse(x: i32) -> i32 {
2 let mut flag = false;
3 let mut abs_x;
4 if 0 < x {
5 flag = true;
6 abs_x = x;
7 } else {
8 abs_x = x.abs();
9 }
10 // println!("abs_x = {}", abs_x);
11
12 let mut result :i32 = 0;
13
14 loop {
15 if abs_x / 10 == 0 && abs_x % 10 == 0 {
16 break;
17 } else {
18 let temp = abs_x % 10;
19 // println!("temp = {}", temp);
20 abs_x = abs_x / 10;
21 result += temp;
22
23 if abs_x == 0 {
24 result *= 1;
25 } else {
26 //这里会发生溢出,如果发生溢出的话这个函数返回的是None
27 // if let Some(value) = result.checked_mul(10) {
28 // result = value;
29 // // println!("result = {}", result);
30 // } else { // 匹配不到值返回的是0
31 // return 0;
32 // }
33
34 let ret = result.checked_mul(10);
35 match ret {
36 Some(value) => result = value,
37 None => { return 0; },
38 }
39 }
40 }
41 }
42
43 if flag { // if flag true
44 // result = result;
45 } else { // if flag false
46 result *= -1;
47 }
48 result
49 }
50
51 fn reverse_v2(x: i32) -> i32 {
52 // println!("{}", x.signum());
53 x.abs()
54 .to_string()
55 .chars().rev()
56 .collect::<String>()
57 .parse::<i32>()
58 .unwrap_or(0) * x.signum()
59
60 }
61 fn main() {
62 // let x = 1534236469;
63 // let x = 123;
64 let x = -321;
65 // let x = 120;
66 let ret = reverse_v2(x);
67
68 println!("x = {}, ret = {}", x, ret);
69 // println!("Hello, world!");
70 }
【leetcode】# 7 整数翻转 Rust Solution的更多相关文章
- 整数翻转C++实现 java实现 leetcode系列(七)
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: ...
- LeetCode刷题:第七题 整数翻转 第九题 回文数
第七题题目描述: 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入 ...
- Leetcode 7. 整数反转(待整理)
1.题目描述 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: ...
- LeetCode:整数转罗马数字【12】
LeetCode:整数转罗马数字[12] 题目描述 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 10 ...
- 前端与算法 leetcode 7. 整数反转
目录 # 前端与算法 leetcode 7. 整数反转 题目描述 概要 提示 解析 解法 算法 传入测试用例的运行结果 执行结果 GitHub仓库 # 前端与算法 leetcode 7. 整数反转 题 ...
- java实现整数翻转
** 整数翻转** 以下程序把一个整数翻转(8765变为:5678),请补充缺少的代码. int n = 8765; int m = 0; while(n>0) { m = __________ ...
- [LeetCode] Reverse Integer 翻转整数
Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 click to ...
- [LeetCode] Reverse String 翻转字符串
Write a function that takes a string as input and returns the string reversed. Example: Given s = &q ...
- [LeetCode] Flip Game 翻转游戏
You are playing the following Flip Game with your friend: Given a string that contains only these tw ...
- LeetCode 343. 整数拆分(Integer Break) 25
343. 整数拆分 343. Integer Break 题目描述 给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化. 返回你可以获得的最大乘积. 每日一算法2019/5/2 ...
随机推荐
- 剑指 offer 第 1 天
第 1 天 栈与队列(简单) 剑指 Offer 09. 用两个栈实现队列 用两个栈实现一个队列.队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部 ...
- 打工人都在用的AI工具(第二期)
更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流. 上周更新的打工人都在用的AI工具(第一期)收到了小伙伴们的高度好评,于是很多小伙伴们急急忙忙的催更,技术 ...
- ggplot2图形可视化应用集锦
数据可视化就是将我们从数据中探索的信息与图形要素对应起来的过程.数据可视化,先要理解数据,再去掌握可视化的方法,这样才能实现高效的数据可视化.数据可视化技术的基本思想,是将数据库中每一个数据项作为单个 ...
- LeetCode 周赛 340,质数 / 前缀和 / 极大化最小值 / 最短路 / 平衡二叉树
本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问. 大家好,我是小彭. 上周跟大家讲到小彭文章风格的问题,和一些朋友聊过以后,至少在算法题解方面确定了小彭的风格 ...
- 手动编写Swagger文档与部署指南
Swagger介绍 在Web开发中,后端开发者在完成接口开发后,需要给前端相应的接口使用说明,所以一般会写一份API文档.一般来说,有两种方式提供API接口文档,一种是利用插件在代码中自动生成,另一种 ...
- vue自定义密码输入框解决浏览器自动填充密码的问题
pre { overflow-y: auto; max-height: 300px } img { max-width: 500px; max-height: 300px } 问题描述 浏览器对于ty ...
- .NET周报 【4月第3期 2023-04-15】
国内文章 Semantic Kernel 入门系列: Planner 规划器 https://www.cnblogs.com/xbotter/p/semantic_kernel_introductio ...
- APISIX 是怎么保护用户的敏感数据不被泄露的?
本文以 APISIX 作为例子,为大家介绍了如何借助 Global Data Encryption 功能来保护敏感数据,确保不会有任何敏感数据进行明文存储,这样即使 etcd 中所有存储的数据都被盗取 ...
- error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file o
error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file o ...
- ChatGPT在工业领域的研究与应用探索-数据与工况认知
1. ChatGPT发展现状... 2 2. ChatGPT如何与工业相结合... 2 3. ChatGPT在工业领域的研究与应用... 3 1. ChatGPT发展 ...