給定乙個數,請將該數各個位上數字反轉得到乙個新數。
這次與noip2011普及組第一題不同的是:這個數可以是小數,分數,百分數,整數。整數反轉是將所有數字對調;小數反轉是把整數部分的數反轉,再將小數部分的數反轉,不交換整數部分與小數部分;分數反轉是把分母的數反轉,再把分子的數反轉,不交換分子與分母;百分數的分子一定是整數,百分數只改變量字部分。整數新數也應滿足整數的常見形式,即除非給定的原數為零,否則反轉後得到的新數的最高位數字不應為零;小數新數的末尾不為0(除非小數部分除了0沒有別的數,那麼只保留1個0);分數不約分,分子和分母都不是小數(約分滴童鞋抱歉了,不能過哦。輸入資料保證分母不為0),本次沒有負數。
給定乙個數,請將該數各個位上數字反轉得到乙個新數。
這次與noip2011普及組第一題不同的是:這個數可以是小數,分數,百分數,整數。
整數反轉是將所有數字對調。
小數反轉是把整數部分的數反轉,再將小數部分的數反轉,不交換整數部分與小數部分。
分數反轉是把分母的數反轉,再把分子的數反轉,不交換分子與分母。
百分數的分子一定是整數,百分數只改變量字部分。
乙個數 s
乙個數,即 s 的反轉數
輸入輸出樣例
輸入輸出
輸入600.084
輸出6.48
輸入700/27
輸出7/72
輸入8670%
輸出768%
提示資料保證:
對於整數翻轉而言,整數原數和整數新數滿足整數的常見形式,即除非給定的原數為零,否則反轉後得到的新數和原來的數字的最高位數字不應為零。
對於小數翻轉而言,其小數點前面部分同上,小數點後面部分的形式,保證滿足小數的常見形式,也就是末尾沒有多餘的 00(小數部分除了 00 沒有別的數,那麼只保留 11 個 00。若反轉之後末尾數字出現 00,請省略多餘的 00)
對於分數翻轉而言,分數不約分,分子和分母都不是小數。輸入的分母不為0。與整數翻轉相關規定見上。
資料不存在負數。
我的**
def
reverse_integer
(num)
:'''反轉整數'''
n=num[::
-1]#n為num的反轉,-1為給slice時stride的引數
#刪去頭0
if n!=
'0':
while n[0]
=='0'
: n=n.lstrip(
'0')
return n
defreverse_fraction
(num)
:'''反轉非整數'''
notation=
''#找到不為數字的那個符號,賦值給notation
for char in num:
ifnot char.isnumeric():
notation=char
index_notation=num.index(notation)
part_one=num[
0:index_notation]
part_two=
''#考慮到notation可能位於num的末尾的情況
if index_notation!=
len(num)-1
: part_two=num[index_notation+1:
]return reverse_integer(part_one)
+ notation + reverse_integer(part_two)
else
:#如果位於末尾
return reverse_integer(part_one)
+notation
defsolution()
: s=
input()
ans=
''if s.isnumeric():
ans=reverse_integer(s)
else
: ans=reverse_fraction(s)
#如果是小數,去末尾的0,同時保證依然是小數
if'.'
in ans:
while ans[-1
]=='0'and ans[-2
]!='.':
ans=ans.rstrip(
'0')
print
(ans)
solution(
)
leetcode 整數反轉(python3)
給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 231,231 1 請根據這個假設,如果反轉後整數溢位那麼就返回 0。題目連線 class solution def reverse self,x int int...
python3介面程式設計 Python3程式設計技巧
in 1 fromrandom import randint in 2 data randint 10,10 for in range 10 in 3 data out 3 3,4,3,4,7,2,4,1,7,9 過濾列表中的負數 in 9 list filter lambda x x 0,data...
Leetcode 整數反轉 Python3實現
題目 給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。示例 1 輸入 123 輸出 321 示例 2 輸入 123 輸出 321 示例 3 輸入 120 輸出 21 注意 假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 2 31,2 31 1 請根據這個假設...