【LeetCode】Fizz Buzz 解题报告

2017-01-02  本文已影响0人  负雪明烛

【LeetCode】Fizz Buzz 解题报告


[LeetCode]

https://leetcode.com/problems/fizz-buzz/

Question

Write a program that outputs the string representation of numbers from
1 to n.

But for multiples of three it should output “Fizz” instead of the
number and for the multiples of five output “Buzz”. For numbers which
are multiples of both three and five output “FizzBuzz”.

Ways

思路很简单,判断是否能特定位置的数字是否能被3和5整除即可。

方法一:

class Solution(object):
    def fizzBuzz(self, n):
        """
        :type n: int
        :rtype: List[str]
        """
        ListReturn = [];
        x = 1
        while x <= n:
            if x % 3 == 0 and x % 5 == 0:
                ListReturn.append("FizzBuzz")
            elif x % 3 == 0:
                ListReturn.append("Fizz")
            elif x % 5 == 0:
                ListReturn.append("Buzz")
            else:
                ListReturn.append(str(x))
            x += 1
        return ListReturn

AC:69 ms

感觉好繁琐,python应该可以很简单。所以参考了别人的跟进如下。

class Solution(object):
    def fizzBuzz(self, n):
        """
        :type n: int
        :rtype: List[str]
        """
        return ["Fizz" * (i % 3 == 0) + "Buzz" * (i % 5 == 0) 
        + str(i) * (i % 3 != 0 and i % 5 != 0)          
        for i in range(1, n + 1)]

AC:96 ms

嗯。这个看起来舒服多了。

Date

2017 年 1 月 2 日

上一篇 下一篇

猜你喜欢

热点阅读