LeetCode 007 Reverse Integer
2016-05-01 05:04
302 查看
题目大意是给一个整数,把这个整数倒过来,返回倒过来的结果。比如123返回321;-123返回-321。
看到题目马上要反应,是多大的整数?是以字符串存储的还是整型变量存储的?返回的是整型变量还是字符串?如果是字符串存的,末尾有零,那翻转之后还是否应该保留0?如果是整型变量存的,那是否保证翻转之后整型变量存的下?如果存不下的话怎么处理?这些都要向面试官问清楚。
从给出的函数原型可以看出,给出的整数x存在int里,返回的也是int。题目说了,溢出返回0。算法很简单,不断的用%取x的最后一位,加在结果变量y的最后一位即可(y=y*10+x%10,x/=10)。但是需要判断是否溢出,所以我用了一个临时变量ty,用ty存y加上x最后一位的结果,确认没溢出再y=ty。
判断溢出:
如果y和ty符号相反就是溢出。注意,这样还不够,因为y更新的时候做的是乘法,所以溢出了还有可能是同号!我用的方法是,如果ty/10等于y,那么就没溢出,否则就返回0。
看到题目马上要反应,是多大的整数?是以字符串存储的还是整型变量存储的?返回的是整型变量还是字符串?如果是字符串存的,末尾有零,那翻转之后还是否应该保留0?如果是整型变量存的,那是否保证翻转之后整型变量存的下?如果存不下的话怎么处理?这些都要向面试官问清楚。
从给出的函数原型可以看出,给出的整数x存在int里,返回的也是int。题目说了,溢出返回0。算法很简单,不断的用%取x的最后一位,加在结果变量y的最后一位即可(y=y*10+x%10,x/=10)。但是需要判断是否溢出,所以我用了一个临时变量ty,用ty存y加上x最后一位的结果,确认没溢出再y=ty。
判断溢出:
如果y和ty符号相反就是溢出。注意,这样还不够,因为y更新的时候做的是乘法,所以溢出了还有可能是同号!我用的方法是,如果ty/10等于y,那么就没溢出,否则就返回0。
相关文章推荐
- leetcode 179 Largest Number
- leetcode 24 Swap Nodes in Pairs
- leetcode 2 Add Two Numbers 方法1
- leetcode 2 Add Two Numbers 方法2
- leetcode----Longest Substring Without Repeating Characters
- [LeetCode]47 Permutations II
- [LeetCode]65 Valid Number
- [LeetCode]123 Best Time to Buy and Sell Stock III
- [LeetCode] String Reorder Distance Apart
- [LeetCode] Sliding Window Maximum
- [LeetCode] Find the k-th Smallest Element in the Union of Two Sorted Arrays
- [LeetCode] Determine If Two Rectangles Overlap
- [LeetCode] A Distance Maximizing Problem
- leetcode_linearList
- leetcode_linearList02
- 021-Merge Two Sorted Lists(合并两个排好序的单链表);leetcode
- LeetCode[Day 1] Two Sum 题解
- LeetCode[Day 2] Median of Two Sorted Arrays 题解
- LeetCode[Day 3] Longest Substring Without... 题解
- LeetCode [Day 4] Add Two Numbers 题解