当前位置 博文首页 > python反转一个三位整数的多种实现方案

    python反转一个三位整数的多种实现方案

    作者:joey_jiangz 时间:2021-07-14 18:47

    在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))
    jsjbwy
    下一篇:没有了