Python3程式設計 數字反轉(公升級版)

2021-10-03 07:39:50 字數 2242 閱讀 8602

給定乙個數,請將該數各個位上數字反轉得到乙個新數。

這次與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 請根據這個假設...