zoukankan      html  css  js  c++  java
  • LeetCode 7 Reverse Integer & int

    Reverse Integer

    想用余10直接算,没想到
    -123%107, 原因 -123-(-123//10*10)

    r=a-n*[a/n]
    以上,r是余数,a是被除数,n是除数。
    
    唯一不同点,就是商向0或负无穷方向取整的选择,c从c99开始规定向0取整,python则规定向负无穷取整,选择而已。
    
    所以套用上述公式为:
    C 语言:(a%n的符号与a相同)
                -9%7=-9 - 7*[-1]=-2;
                9%-7=9 - -7*[-1]=2;
    Python语言::(a%n的符号与n相同)
                -9%7=-9 - 7*[-2]=5
                9%-7=-9 - -7*[-2]=-5
    

    by 负数求余,Python和C语言的不同

    所以直接存符号吧。

    第1次提交
    import time
    
    class Solution:
        def __init__(self):
            self.maxValue=2**31-1
            self.minValue=-2**31
        def reverse(self, x):
            """
            :type x: int
            :rtype: int
            """
            reverseInt=0
    
            flag=1
            if x<0:
                flag=-1
                x=abs(x)
            
            i=0
            while x>=1:
                reverseInt*=10
                reverseInt+=x%10
                x//=10
                i+=1
                #print(reverseInt,x)
    
            reverseInt*=flag
    
            if reverseInt>self.maxValue or reverseInt<self.minValue:
                reverseInt=0
            return reverseInt
    
    if __name__ == "__main__":
        
        data = [
            {
                "input":123,
                "output":321, 
            },
            {
                "input":-123,
                "output":-321, 
            },
            {
                "input":120,
                "output":21, 
            }
    
        ];
        for d in data:
            
            print(d['input'])
            
            # 计算运行时间
            start = time.perf_counter()
            result=Solution().reverse(d['input'])
            end = time.perf_counter()
            
            print(result)
            if result==d['output']:
                print("--- ok ---",end="	")
            else:
                print("--- error ---",end="	")
            
            print(start-end)
    

    一次AC,题太简单,没有什么感觉:)

  • 相关阅读:
    iBatis,第二次亲密接触
    微斯人,吾谁与归
    一个月了
    生命在于运动
    眼皮跳了好几天
    往返
    中病毒,学习批处理

    爱如潮水
    今天夏至
  • 原文地址:https://www.cnblogs.com/warcraft/p/9361984.html
Copyright © 2011-2022 走看看