python反轉一個三位整數的多種實現方案
在LintCode上練習遇到這個問題,查閱資料找到多種方法,總結如下。
輸入 | 輸出 |
---|---|
123 | 321 |
第一種:整數方法取餘取整實現
class Solution: """ @param number: A 3-digit number. @return: Reversed number. """ def reverseInteger(self, number): g = number%10 #取出個位數 s = (int(number/10))%10 #取出十位數 b = int(number/100) #取出百位數 return g*100+s*10+b if __name__ == "__main__": so = Solution() print (so.reverseInteger(123))
python不和C語言一樣自動截取保留整數,需要用 int 轉換一下
第二種:使用字符串切片
def reverseInteger(self, number): number=str(number) result=number[::-1] result=(int(result)) return result
借用字符串的方法處理
第三種:使用棧
def reverseInteger(self, number): number=str(number)#模擬入棧 l=list(number) result="" while len(l)>0: result+=l.pop()#模擬出棧 return int(result)
補充:Python程序:任意輸入一個三位數,然後把三位數的位置反轉輸出。
第一種方法
把輸入的三位數百位、十位和個位依次表示出來,然後將個位數字和百位數字進行交換。
#輸入number = 123,輸出321 number = int(input('請輸入一個三位數:')) a = number%10 #個位 b = number//10%10 #十位 c = number//100 #百位 re_number = a*100 + b*10 + c print('%d的反轉數是:%d'%(number,re_number)) #第一種輸出方式 print('{0}的反轉數是:{1}'.format(number,re_number)) #第二種輸出方式
第二種方法
將輸入的三位數以字符串的形式用list()方法列表化,然後逆序從列表中依次取出個位、十位、百位,輸出的時候註意將str類型轉換為int類型。
#輸入number = 123,輸出321 number = input('請輸入一個三位數:') list1 = list(number) #將輸入的三位數的字符串存入列表 list1.reverse() #將列表元素反轉 a = int(list1[0]) #取出反轉後列表的元素並將其類型轉為int類型 b = int(list1[1]) c = int(list1[2]) #也可以不反轉列表,直接反著取出列表中的元素 re_number = a*100 + b*10 + c print('%s的反轉數是:%s'%(number,re_number)) print('%d的反轉數是:%d'%(int(number),re_number))
以上就是我所想到的輸出3位數反轉數的方法,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- 7個關於Python的經典基礎案例
- Python 中的反轉字符串reversed(),切片
- 10個必須要掌握的Python內置函數
- python列表倒序的幾種方法(切片、reverse()、reversed())
- Python的列表和元組詳情