[LeetCode] Reverse Integer 解题报告
2016-10-12 10:05
423 查看
—— write for my baby, mua
[题目]
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
[中文翻译]
将整数的数字反向。
例子1: x = 123, 返回 321
例子2: x = -123, 返回 -321
[解题思路]
O(K) K为数字的长度
首先将num的符号提取出来,将num转换为一个正数。
然后将num转换为字符串,将字符串反转之后再转换为数字res。
将符号和res结合后返回。
[C++代码]
class Solution {
public:
int reverse(int x) {
int sign = 1;
if (x < 0) {
x = -x;
sign = -1;
}
stringstream ss;
string s;
ss << x;
ss >> s;
int l = 0, r = s.size() - 1;
char tmp;
while (l < r) {
tmp = s.at(l);
s.at(l++) = s.at(r);
s.at(r--) = tmp;
}
long long y;
ss.clear();
ss << s;
ss >> y;
if (0 != (y >> 31))
y = 0;
x = y;
return sign*x;
}
};
[注意]
有一点题目没有描述清楚。对于反转之后的结果超出int范围的,需要返回0。例如,2147483647反转之后为7463847412,超过了int的范围,应返回0。在程序中,实际上就是判断了去符号之后,超过31位的部分是否不为0。
[题目]
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
[中文翻译]
将整数的数字反向。
例子1: x = 123, 返回 321
例子2: x = -123, 返回 -321
[解题思路]
O(K) K为数字的长度
首先将num的符号提取出来,将num转换为一个正数。
然后将num转换为字符串,将字符串反转之后再转换为数字res。
将符号和res结合后返回。
[C++代码]
class Solution {
public:
int reverse(int x) {
int sign = 1;
if (x < 0) {
x = -x;
sign = -1;
}
stringstream ss;
string s;
ss << x;
ss >> s;
int l = 0, r = s.size() - 1;
char tmp;
while (l < r) {
tmp = s.at(l);
s.at(l++) = s.at(r);
s.at(r--) = tmp;
}
long long y;
ss.clear();
ss << s;
ss >> y;
if (0 != (y >> 31))
y = 0;
x = y;
return sign*x;
}
};
[注意]
有一点题目没有描述清楚。对于反转之后的结果超出int范围的,需要返回0。例如,2147483647反转之后为7463847412,超过了int的范围,应返回0。在程序中,实际上就是判断了去符号之后,超过31位的部分是否不为0。
相关文章推荐
- [LeetCode] Reverse Integer 解题报告
- [LeetCode]Reverse Integer解题报告
- LeetCode-Reverse Integer-解题报告
- [LeetCode] Reverse Integer 解题报告
- LeetCode: Reverse Integer 解题报告
- LeetCode 7 Reverse Integer 解题报告
- [LeetCode]Reverse Nodes in k-Group, 解题报告
- [leetcode]151. Reverse Words in a String@Java解题报告
- [LeetCode] String to Integer (atoi) 解题报告
- Leetcode 92. Reverse Linked List II 翻转链表2 解题报告
- leetcode解题报告8. String to Integer (atoi)
- 【LeetCode】Roman to Integer 解题报告
- [LeetCode]Reverse Linked List II, 解题报告
- leetcode解题报告(27):Reverse Linked List
- LeetCode解题报告--String to Integer (atoi)
- [LeetCode] Integer to Roman 解题报告
- Reverse Integer解题报告
- 【LeetCode】String to Integer (atoi) 解题报告
- [LeetCode]Evaluate Reverse Polish Notation, 解题报告
- [Leetcode] 7. Reverse Integer 解题报告