zoukankan      html  css  js  c++  java
  • Leetcode练习(Python):哈希表类:第166题:分数到小数:给定两个整数,分别表示分数的分子 numerator 和分母 denominator,以字符串形式返回小数。 如果小数部分为循环小数,则将循环的部分括在括号内。

    题目:
    分数到小数:给定两个整数,分别表示分数的分子 numerator 和分母 denominator,以字符串形式返回小数。  如果小数部分为循环小数,则将循环的部分括在括号内。 
    思路:
    一开始想到用哈希表来存储小数点后的部分,就是没有想出一个很好的表达,一直也不对,看来一个大神的解答,写的很好啊,学习了,自己按照他的思想写了一下,此外,这道题涉及到的细节问题有很多,得注意。
    程序:
    class Solution:
        def fractionToDecimal(self, numerator: int, denominator: int) -> str:
            if numerator == 0:
                return '0'
            if denominator == 0:
                return 'Nan'
            if numerator * denominator < 0:
                sign = '-'
            if numerator * denominator > 0:
                sign = ''
            numerator = abs(numerator)
            denominator = abs(denominator)
            a, b = divmod(numerator, denominator)
            if b == 0:
                return sign + str(a)
            result = sign + str(a) + '.'
            myHashMap = {}
            index = len(result)
            while b != 0:
                if b not in myHashMap:
                    myHashMap[b] = index
                else:
                    index = myHashMap[b]
                    result = result[: index] + '('+ result[index :] +')'
                    return result
                a, b = divmod(b * 10, denominator)
                result += str(a)
                index += 1
            return result
  • 相关阅读:
    IsBadReadPtr|IsBadWritePtr调试崩溃
    VSCode配置python调试环境
    Visual Studio Code 如何编写运行 C、C++ 程序?
    使用nginx做反向代理
    Win10环境下配置VScode的C++编译环境
    关于java 获取 html select标签 下拉框 option 文本内容 隐藏域
    【VSCode】Windows下VSCode编译调试c/c++【更新 2018.03.27】
    VS Code 配置 C/C++ 环境
    改变你一生的编辑器:VSCode使用总结
    CentOS7,安装Tomcat8.5、JDK1.8,并设置开机启动(Linux CentOS Tomcat、JDK+Tomcat、Tomcat开机自启动)
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12795222.html
Copyright © 2011-2022 走看看