leetcode 7 Reverse Integer
来源:互联网 发布:拉圈圈网站源码 编辑:程序博客网 时间:2024/06/06 12:55
题目:
https://leetcode.com/problems/reverse-integer/description/
题意:
Given a 32-bit signed integer, reverse digits of an integer.
Example 1:
Input: 123
Output: 321
Example 2:Input: -123
Output: -321
Example 3:Input: 120
Output: 21
Note:
Assume we are dealing with an environment which could only hold integers within the 32-bit signed integer range. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.
给一个整数,输出它的倒序数,如果倒序数超出了
思路:
最简单的方法是
代码:
方法一:
class Solution {public: int reverse(int x) { long long rev_x = 0; while(x) { rev_x = rev_x*10 + x%10; x /= 10; } if(rev_x < INT_MIN || rev_x > INT_MAX) return 0; else return (int)rev_x; }};
方法二:
class Solution {public: int reverse(int x) { string intMaxStr = intToStrReverse(INT_MAX); string intMinStr = intToStrReverse(INT_MIN); std::reverse(intMaxStr.begin(), intMaxStr.end()); std::reverse(intMinStr.begin(), intMinStr.end()); int ans = 0; bool positive = true; if(x < 0) positive = false; string xStrReverse = intToStrReverse(x); if(positive) { if(compareIntStr(xStrReverse, intMaxStr) <= 0) ans = strToInt(xStrReverse, positive); else ans = 0; } else { if(compareIntStr(xStrReverse, intMinStr) <= 0) ans = strToInt(xStrReverse, positive); else ans = 0; } return ans; }private: string intToStrReverse(int num) { if(num == 0) return "0"; else { string ans = ""; while(num != 0) { ans += (char)(abs(num%10) + '0'); num /= 10; } string::size_type i = 0; while(ans[i] == 0) ++i; return ans.substr(i); } } int compareIntStr(const string &x, const string &y) { if(x.size() > y.size()) return 1; else if(x.size() < y.size()) return -1; else return x.compare(y); } int strToInt(const string &str, bool positive) { int ans = 0; for(string::size_type i = 0; i < str.size(); ++i) { if(positive) ans = ans * 10 + (str[i]-'0'); else ans = ans * 10 - (str[i]-'0'); } return ans; }};
阅读全文
0 0
- LeetCode 7 - Reverse Integer
- LeetCode(7) Reverse Integer
- leetcode 7REVERSE INTEGER
- [leetcode 7] Reverse Integer
- [Leetcode] 7 - Reverse Integer
- LeetCode 7:《Reverse Integer》
- [leetcode 7] Reverse Integer
- LeetCode | #7 Reverse Integer
- leetcode.7-----------Reverse Integer
- LeetCode 7: Reverse Integer
- leetcode-7 Reverse Integer
- leetcode(7)Reverse Integer
- LeetCode 7 - Reverse Integer
- leetcode 7 Reverse Integer
- leetcode #7 Reverse Integer
- leetcode 7 -- Reverse Integer
- LeetCode 7: Reverse Integer
- Leetcode[7]-Reverse Integer
- Linux执行结果不输出到终端
- 55. Jump Game
- 上下文菜单及选项菜单
- /etc/resolvconf/resolv.conf.d/base
- 第14周项目1-1
- leetcode 7 Reverse Integer
- 高仿淘宝 二级列表固定数据 购物车
- System76:全面支持Linux笔记本/台式电脑的HiDPI显示
- 牛批的strcpy和strcmp
- JavaSE练习
- mysql安装sakila数据库
- 全排列生成
- Linux下知识点整理(二)
- ubuntu16.04下安装显卡驱动