zoukankan      html  css  js  c++  java
  • [Leetcode][Python]29: Divide Two Integers

    # -*- coding: utf8 -*-
    '''
    __author__ = 'dabay.wang@gmail.com'

    29: Divide Two Integers
    https://oj.leetcode.com/problems/divide-two-integers/

    Divide two integers without using multiplication, division and mod operator.
    If it is overflow, return MAX_INT.

    ===Comments by Dabay===

    先确定符号。

    做除法式子:
    一个字符串保存商,一个字符串保存余数。
    计算每一位商的时候,用余数来减除数,如果剩下的数大于0,商就加1。

    最后返回的时候,考虑题目中提到的overflow。(个人感觉这个要求没什么意义)
    '''

    class Solution:
    # @return an integer
    def divide(self, dividend, divisor):
    if dividend == 0:
    return 0
    if (dividend > 0 and divisor < 0) or (dividend < 0 and divisor > 0):
    quotient = "-"
    else:
    quotient = ""
    dividend = abs(dividend)
    divisor = abs(divisor)

    dividend = str(dividend)
    i = 0
    remainder = ""
    while i < len(dividend):
    remainder = int(str(remainder) + dividend[i])
    quot = 0
    while remainder >= divisor:
    remainder -= divisor
    quot += 1
    quotient += str(quot)
    i += 1

    if int(quotient) > 2147483647:
    return 2147483647
    elif int(quotient) < -2147483648:
    return 2147483648
    else:
    return int(quotient)


    def main():
    sol = Solution()
    print sol.divide(1, -1)


    if __name__ == "__main__":
    import time
    start = time.clock()
    main()
    print "%s sec" % (time.clock() - start)
  • 相关阅读:
    Centos7.3安装jdk和maven
    Centos7.3安装sftp服务和ssh
    Centos7.3安装,并设置网络和防火墙
    Docker 常用命令
    Tomcat配置
    MySQL配置
    配置JDK
    JTable的模型
    JavaBean和List<JavaBean>
    JavaBean
  • 原文地址:https://www.cnblogs.com/Dabay/p/4263070.html
Copyright © 2011-2022 走看看