class Solution: def fractionToDecimal(self, numerator: int, denominator: int) -> str: #if denominator==1: #return numerator if numerator<0: numer=-numerator else: numer=numerator if denominator<0: deno=-denominator else: deno=denominator n=numer//deno e=numer%deno if e==0: if numerator*denominator<0: return '-'+str(n) else: return str(n) res={} m=0 res[e]=10*e//deno m=10*e%deno while m!=0: if m in res: r='' for i in res.keys(): if i!=m: r+=str(res[i]) else: r+='('+str(res[i]) if numerator*denominator<0: return '-'+str(n)+'.'+r+')' else: return str(n)+'.'+r+')' res[m]=10*m//deno m=10*m%deno r='' for i in res.keys(): r+=str(res[i]) if numerator*denominator<0: return '-'+str(n)+'.'+str(r) else: return str(n)+'.'+str(r)
执行用时 :40 ms, 在所有 python3 提交中击败了93.13%的用户
内存消耗 :13.8 MB, 在所有 python3 提交中击败了6.17%的用户
class Solution: def fractionToDecimal(self, numerator: int, denominator: int) -> str: if denominator==1: return str(numerator) if numerator<0: numer=-numerator else: numer=numerator if denominator<0: deno=-denominator else: deno=denominator n=numer//deno e=numer%deno if e==0: if numerator*denominator<0: return '-'+str(n) else: return str(n) res={} m=0 res[e]=10*e//deno m=10*e%deno while m!=0: if m in res: r='' for i in res.keys(): if i!=m: r+=str(res[i]) else: r+='('+str(res[i]) if numerator*denominator<0: return '-'+str(n)+'.'+r+')' else: return str(n)+'.'+r+')' res[m]=10*m//deno m=10*m%deno r='' for i in res.keys(): r+=str(res[i]) if numerator*denominator<0: return '-'+str(n)+'.'+str(r) else: return str(n)+'.'+str(r)
执行用时 :36 ms, 在所有 python3 提交中击败了98.51%的用户
内存消耗 :13.8 MB, 在所有 python3 提交中击败了6.17%的用户
可以自己做出来,但是还是没有很快做出来。。。
——2019.10.21