国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

leetcode第7題,Reverse Integer

2019-11-08 02:44:43
字體:
來源:轉載
供稿:網友

Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 Note: The input is assumed to be a 32-bit signed integer. Your function should return 0 when the reversed integer overflows. 一開始題目有點沒看懂。不知道為什么會溢出。其實是因為,給你的是十進制,而二進制有符號32位能表示的位數是有限的。所以反轉后還是可能溢出的。

int reverse(int x) { long res = 0; while(x) { res = res*10 + x%10; x /= 10; } return (res<INT_MIN || res>INT_MAX) ? 0 : res;}一開始的答案如上所示,INT_MIN和INT_MAX(頭文件:limits.h)分別是-2147483648(-2^31)和2147483647(2^31-1),是int能表示的最小的和最大的數。這個答案被accept了,但是只beat了5%左右的人。后來看到了某大神的答案。int reverse(int x) {int ans = 0;while (x) { int temp = ans * 10 + x % 10; if (temp / 10 != ans) //如果不等的話說明temp已經溢出了 return 0; ans = temp; x /= 10;}return ans;}

這個能自動檢測是否溢出,而不是靠與INT_MAX和INT_MIN比較來檢測溢出,這個比較過程非常耗時。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 正蓝旗| 汕头市| 榆林市| 饶平县| 华阴市| 楚雄市| 西城区| 镇原县| 南汇区| 稷山县| 成安县| 东至县| 安多县| 桂林市| 岢岚县| 治县。| 五原县| 中牟县| 清水县| 容城县| 祥云县| 八宿县| 永福县| 涡阳县| 洪泽县| 峡江县| 麟游县| 固安县| 年辖:市辖区| 大竹县| 许昌市| 兖州市| 天峨县| 望城县| 南开区| 班玛县| 普陀区| 双鸭山市| 珠海市| 濮阳县| 乌拉特中旗|