166. Fraction to Recurring Decimal

class Solution(object):
    def fractionToDecimal(self, numerator, denominator):
        """
        :type numerator: int
        :type denominator: int
        :rtype: str
        """
        divd=abs(numerator)
        divr=abs(denominator)
        if (numerator>0 and denominator<0) or (numerator<0 and denominator>0):
            result='-'
        else:
            result=''
        result+=str(divd/divr)
        divd%=divr
        if divd:
            result+='.'
            
        lookup={}
        while divd and divd not in lookup:
            lookup[divd]=len(result)
            divd*=10
            result+=str(divd/divr)
            divd%=divr 
        if divd in lookup: 
            result=result[:lookup[divd]]+'('+result[lookup[divd]:]+')'
        return result

你可能感兴趣的:(166. Fraction to Recurring Decimal)