aboutsummaryrefslogtreecommitdiff
path: root/other/reverse_integer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'other/reverse_integer.cpp')
-rw-r--r--other/reverse_integer.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/other/reverse_integer.cpp b/other/reverse_integer.cpp
new file mode 100644
index 0000000..14f55cd
--- /dev/null
+++ b/other/reverse_integer.cpp
@@ -0,0 +1,30 @@
+// 7. Reverse Integer
+#include "leetcode.h"
+
+/*
+ * given a signed 32-bit integer 'x', return 'x' with its digits reversed. if
+ * reversing 'x' causes the value to go outside the signed 32-bit integer range,
+ * then return 0
+ */
+
+class Solution {
+public:
+ int reverse(int x) {
+ int ans = 0;
+ while (x) {
+ int tmp = ans * 10 + x % 10;
+ if (tmp / 10 != ans)
+ return 0;
+ ans = tmp;
+ x /= 10;
+ }
+ return ans;
+ }
+};
+
+int main() {
+ Solution obj;
+ printf("%d --> %d\n", 123, obj.reverse(123));
+ printf("%d --> %d\n", -123, obj.reverse(-123));
+ printf("%d --> %d\n", 120, obj.reverse(120));
+}