- 題目:
https://leetcode.cn/problems/reverse-integer/ - 思路:
Rust標準庫實現(xiàn)了String對數(shù)字的轉(zhuǎn)換帆赢。所以整個代碼非常簡單:
- 首先判斷x是否小于0绍昂,如果小于0乌奇,則需要單獨處理負號哄陶。
- 所以我們首先對x打印成字符串祝迂,并反轉(zhuǎn)瞧哟。當x<0時熄赡,將反轉(zhuǎn)后的字符串中尾部的“符號”详炬,插入到字符頭姊舵。
- 最后調(diào)用系統(tǒng)的parser解析函數(shù)晰绎,并對解析失敗的情況(即數(shù)字范圍在i32之外的情況)使用or函數(shù)轉(zhuǎn)換為默認的Ok(0).最后unwrap并返回。
- 示例代碼:
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);
}
}
執(zhí)行結(jié)果: 通過 顯示詳情 添加備注
執(zhí)行用時: 0 ms , 在所有 Rust 提交中擊敗了 100.00% 的用戶
內(nèi)存消耗: 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)
著作權(quán)歸作者所有括丁。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)荞下,非商業(yè)轉(zhuǎn)載請注明出處。
可能這就是差距吧