zoukankan      html  css  js  c++  java
  • 156-412. Fizz Buzz

    写一个程序,输出从 1 到 n 数字的字符串表示。(第一个和第二个是我写的,最直接都是这么朴实无华)
    class Solution(object):
        def fizzBuzz1(self, n):
            """
            :type n: int
            :rtype: List[str]
            """
            ret_list = []
            for i in range(1, n + 1):
                if i % 3 == 0 and i % 5 == 0:
                    ret_list.append("FizzBuzz")
                elif i % 3 == 0:
                    ret_list.append("Fizz")
                elif i % 5 == 0:
                    ret_list.append("Buzz")
                else:
                    ret_list.append(str(i))
            return ret_list
    
        def fizzBuzz2(self, n):
            """在计算质数的时候讲到的埃氏筛
            :type n: int
            :rtype: List[str]
            """
            if n < 1:
                return []
    
            ret_list = [0 for _ in range(n + 1)]
            for i in range(1, n + 1):
                if ret_list[i] == 0:
                    times3 = 3 * i
                    while times3 < n + 1:
                        if ret_list[times3] == 0:
                            ret_list[times3] = "Fizz"
                        times3 += 3
    
                    times5 = 5 * i
                    while times5 < n + 1:
                        if ret_list[times5] == 0:
                            ret_list[times5] = "Buzz"
                        else:
                            if ret_list[times5] == "Fizz":
                                ret_list[times5] += "Buzz"
                        times5 += 5
    
                    ret_list[i] = str(i)
            return ret_list[1:]
    
        def fizzBuzz(self, n):
            """ 这种比上面的好
            :type n: int
            :rtype: List[str]
            """
            ans = [str(i) for i in range(1,n+1)]
            cur = 3
            while cur <= n:
                ans[cur-1] = "Fizz"
                cur += 3
            cur = 5
            while cur <= n:
                ans[cur-1] = "Buzz"
                cur += 5
            cur = 15
            while cur <= n:
                ans[cur-1] = "FizzBuzz"
                cur += 15
            return ans
    
    
    if __name__ == '__main__':
        s1 = Solution()
        prices = 100
        root = s1.fizzBuzz(prices)
        print(root)
    
  • 相关阅读:
    信息收集-DNS
    Xshell下载
    JSP
    本地网络配置
    P1485 火枪打怪
    P4155 [SCOI2015]国旗计划
    P1017 [NOIP2000 提高组] 进制转换
    P1013 [NOIP1998 提高组] 进制位
    P1011 [NOIP1998 提高组] 车站
    CF841B Godsend
  • 原文地址:https://www.cnblogs.com/liuzhanghao/p/14329233.html
Copyright © 2011-2022 走看看