游标一定要记得在循环里不断增加
class Solution(object):
def fractionToDecimal(self, n, d):
def sign(x):
if x>0:
return 1
if x<0:
return -1
if x==0:
return 0
if d==0:
return 'NaN'
if n==0:
return '0'
isNeg=False
if sign(n)*sign(d)==-1:
d=d*sign(d)
n=n*sign(n)
isNeg=True
res=n//d
rem=n%d
if rem == 0:
return '-'+str(res) if isNeg else str(res)
dec_str=''
dict_rem={}
dec_cur=0
while rem!=0 and rem not in dict_rem:
dict_rem[rem]=dec_cur
dec_str+=str(rem*10//d)
rem=rem*10%d
dec_cur+=1
if rem == 0:
return ('-' if isNeg else '')+str(res)+'.'+dec_str
return ('-' if isNeg else '')+str(res)+'.'+dec_str[:dict_rem[rem]]+'('+dec_str[dict_rem[rem]:]+')'
网友评论