美文网首页
三行搞定Rust LeetCode整数反转

三行搞定Rust LeetCode整数反转

作者: liaozhiyuan | 来源:发表于2022-06-24 00:51 被阅读0次
    1. 题目:
      https://leetcode.cn/problems/reverse-integer/
    2. 思路:
      Rust标准库实现了String对数字的转换。所以整个代码非常简单:
    • 首先判断x是否小于0,如果小于0,则需要单独处理负号。
    • 所以我们首先对x打印成字符串,并反转。当x<0时,将反转后的字符串中尾部的“符号”,插入到字符头。
    • 最后调用系统的parser解析函数,并对解析失败的情况(即数字范围在i32之外的情况)使用or函数转换为默认的Ok(0).最后unwrap并返回。
    1. 示例代码:
    impl Solution {
        pub fn reverse(x: i32) -> i32 {
            let mut a = format!("{}", x).chars().rev().collect::<String>();
            if x < 0 { a.pop(); a.insert(0, '-')}
            return a.parse::<i32>().unwrap_or(0i32);
        }
    }
    
    执行结果: 通过 显示详情 添加备注
    执行用时: 0 ms , 在所有 Rust 提交中击败了 100.00% 的用户
    内存消耗: 2 MB , 在所有 Rust 提交中击败了 60.13% 的用户
    通过测试用例:
    1032 / 1032
    

    看了一下大佬的代码:

    impl Solution {
        pub fn reverse(x: i32) -> i32 {
           x.abs()
            .to_string()
            .chars().rev()
            .collect::<String>()
            .parse::<i32>()
            .unwrap_or(0) * x.signum()
        }
    }
    作者:arstman
    链接:https://leetcode.cn/problems/reverse-integer/solution/shan-yu-li-yong-biao-zhun-ku-yi-xing-dai-ma-jie-ju/
    来源:力扣(LeetCode)
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    

    可能这就是差距吧

    相关文章

      网友评论

          本文标题:三行搞定Rust LeetCode整数反转

          本文链接:https://www.haomeiwen.com/subject/jbcvvrtx.html