题目:
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21
注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 。请根据这个假设,如果反转后整数溢出那么就返回 0。
解题思路:
1.实现数据的反转
如果是正数:
1
2
3
4
5
|
tra = 0 while x ! = 0 : n2 = x % 10 x = x / / 10 tra = tra * 10 + n2 |
如果是负数就abs()一下这个数
2.溢出判定
给出范围[−2^31, 2^31 − 1]
则输出的结果tra就必须满足这个范围.
代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
class Solution( object ): def reverse( self , x): base = 1 for i in range ( 31 ): base = base * 2 two_Max = base - 1 two_Min = - base tra = 0 if x < 0 : x = abs (x) while x ! = 0 : n2 = x % 10 if tra > abs (two_Min) / / 10 or (tra = = abs (two_Min) / / 10 and n2 < - 8 ): return 0 x = x / / 10 tra = tra * 10 + n2 return - tra else : while x ! = 0 : n2 = x % 10 if tra > two_Max / / 10 or (tra = = two_Max and n2 > 7 ): return 0 x = x / / 10 tra = tra * 10 + n2 return tra |
补充:python实现数字反转_python 数字怎么反转
每次写 Python 都会忘记该怎么写,最后只能去 Stack Overflow 查?我也一样。时间一长,这让人厌倦。
这15个 Python 技巧和窍门,可以帮你提高效率
1. 交换值
1
2
3
4
|
x, y = 1 , 2 print (x, y) x, y = y, x print (x, y) |
2. 字符串列表合并为一个字符串
1
2
3
|
sentence_list = [ "my" , "name" , "is" , "George" ] sentence_string = " " .join(sentence_list) print (sentence_string) |
3. 将字符串拆分为子字符串列表
1
2
3
|
sentence_string = "my name is George" sentence_string.split() print (sentence_string) |
4. 通过数字填充初始化列表
1
2
3
4
|
[ 0 ] * 1000 # List of 1000 zeros [ 8.2 ] * 1000 # List of 1000 8.2's |
5. 字典合并
1
2
3
|
x = { 'a' : 1 , 'b' : 2 } y = { 'b' : 3 , 'c' : 4 } z = { * * x, * * y} |
6. 反转字符串
1
|
name = "George" name[:: - 1 ] |
7. 从函数返回多个值
1
2
3
4
5
|
def get_a_string(): a = "George" b = "is" c = "cool" return a, b, c sentence = get_a_string() (a, b, c) = sentence |
8. 列表解析式
1
2
|
a = [ 1 , 2 , 3 ] b = [num * 2 for num in a] # Create a new list by multiplying each element in a by 2 |
9. 遍历字典
1
|
m = { 'a' : 1 , 'b' : 2 , 'c' : 3 , 'd' : 4 } for key, value in m.items(): print ( '{0}: {1}' . format (key, value)) |
10. 同时遍历列表的索引和值
1
|
m = [ 'a' , 'b' , 'c' , 'd' ] for index, value in enumerate (m): print ( '{0}: {1}' . format (index, value)) |
11. 初始化空容器
1
2
3
4
|
a_list = list () a_dict = dict () a_map = map () a_set = set () |
12. 删除字符串两端的无用字符
1
|
name = " George " name_2 = "George///" name.strip() # prints "George" name_2.strip("/") # prints "George" |
13. 列表中出现最多的元素
1
|
test = [ 1 , 2 , 3 , 4 , 2 , 2 , 3 , 1 , 4 , 4 , 4 ] print ( max ( set (test), key = test.count)) |
14. 检查对象的内存使用情况
1
|
import sys x = 1 print (sys.getsizeof(x)) |
15. 将 dict 转换为 XML
1
|
from xml.etree.ElementTree import Element def dict_to_xml(tag, d): ''' Turn a simple dict of key/value pairs into XML ''' elem = Element(tag) for key, val in d.items(): child = Element(key) child.text = str(val) elem.append(child) return elem |
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。如有错误或未考虑完全的地方,望不吝赐教。
原文链接:https://www.cnblogs.com/justkeep/p/11385721.html