zoukankan      html  css  js  c++  java
  • 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
    我的前方是万里征途,星辰大海!!
  • 相关阅读:
    BZOJ 2565 最长双回文串 (Manacher)
    BZOJ 3881 [COCI2015]Divljak (Trie图+Fail树+树链的并+树状数组维护dfs序)
    BZOJ 3530 [SDOI2014]数数 (Trie图/AC自动机+数位DP)
    BZOJ 1444 [JSOI2009]有趣的游戏 (Trie图/AC自动机+矩阵求逆)
    BZOJ 1195 [HNOI2006]最短母串 (Trie图+状压+bfs最短路)
    luogu P5289 [十二省联考2019]皮配
    luogu P5285 [十二省联考2019]骗分过样例
    luogu P5294 [HNOI2019]序列
    luogu P5292 [HNOI2019]校园旅行
    luogu P5284 [十二省联考2019]字符串问题
  • 原文地址:https://www.cnblogs.com/taoyuxin/p/11715322.html
Copyright © 2011-2022 走看看