您的位置:首页 > 其它

Leetcode 166 Fraction to Recurring Decimal

2016-03-12 10:57 204 查看
class Solution:
# @param {integer} numerator
# @param {integer} denominator
# @return {string}
def fractionToDecimal(self, numerator, denominator):
negativeFlag = numerator * denominator < 0
numerator = abs(numerator); denominator = abs(denominator)
numsList = [];count = 0; dictLoop = {}; loopstr = None
while True:
numsList.append(str(numerator / denominator))
numerator = 10 * (numerator%denominator)
if numerator == 0:  break
count += 1
loc= dictLoop.get(numerator)
if loc:
loopstr = ''.join(numsList[loc:count])
break
dictLoop[numerator] = count
result = numsList[0]
if len(numsList) > 1: result += '.'
if loopstr:
result += ''.join(numsList[1:len(numsList)-len(loopstr)])  + '(' + loopstr + ')'
else:
result += ''.join(numsList[1:])
if negativeFlag: result = '-' + result
return result
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: