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
  • 相关阅读:
    SQL Server 存储过程
    Ajax从服务器端获取数据
    Ajax中Get请求与Post请求的区别
    get请求
    Post请求
    递归案例
    SQL SERVER 和ACCESS的数据导入导出
    OA
    OBS桌面视频直播软件/推流工具使用指南
    基于EasyIPCamera实现的数字网络摄像机IPCamera的模拟器IPC RTSP Simulator
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12795222.html
Copyright © 2011-2022 走看看