• leetcode——166. 分数到小数


    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
    我的前方是万里征途,星辰大海!!
  • 相关阅读:
    Java人员正确使用 IntelliJ IDEA的方式
    python错误:UnicodeDecodeError: 'utf8' codec can't decode byte 0xe6 in position 0: unexpected end of data
    htm5本地存储方案——websql的封装
    htm5本地存储方案——indexdb的封装
    jquery实现checkbox的单选和全选
    Live2d Test Env
    Live2d Test Env
    Live2d Test Env
    Live2d Test Env
    Live2d Test Env
  • 原文地址:https://www.cnblogs.com/taoyuxin/p/11715322.html
Copyright © 2020-2023  润新知