1. 程式人生 > >【LeetCode】LeetCode——第7題:Reverse Integer

【LeetCode】LeetCode——第7題:Reverse Integer

7. Reverse Integer

   My Submissions Total Accepted: 134949 Total Submissions: 571327 Difficulty: Easy

Reverse digits of an integer.

Example1: x = 123, return 321
Example2: x = -123, return -321

Subscribe to see which companies asked this question

Show Tags Show Similar Problems

題目的大概意思是:給定一個int型的整數,將它反轉過來並輸出。

這道題難度等級:簡單

解題思路是:將整數的各位置上的數提取出來並乘以10的相應次方,並全部加起來。

需要注意的是,由於反轉可能導致溢位,還有正負整數的處理。

程式碼如下:

class Solution {
public:
	int reverse(int x) {
		int y = abs(x);
		int z = (x == y) ? 1 : -1;
		long tmp = 0;//避免溢位
		while(y){
			tmp = tmp * 10 + y % 10;
			y /= 10;
		}
		if (z * tmp > INT_MAX || z * tmp < INT_MIN){
			return 0;
		}
		return z * tmp;
	}
};
提交後順利AC掉該題,Runtime: 8 ms