Fizz Buzz

Легкая

Описание задачи #

Дано целое число n. Напишите функцию, которая принимает в качестве параметра число n и возвращает массив строк answer, который формируется по следующим правилам:


Ограничения #

Значение n находится в диапазоне от 1 до 104.


Примеры #

  • Входные данные: 3

    Ответ: ["1","2","Fizz"]

  • Входные данные: 5

    Ответ: ["1","2","Fizz","4","Buzz"]

  • Входные данные: 14

    Ответ: ["1","2","Fizz","4","Buzz","Fizz","7","8","Fizz","Buzz","11","Fizz","13","14","FizzBuzz"]


Решение #

Для решения задачи нужно запустить цикл от 1 до n и на каждой итерации проверять 4 взаимоисключающих условия. Если условие выполняется, то в результирующий массив добавляется соответсвующая строка.

Реализация #

  • package main
    
    import "strconv"
    
    func fizzBuzz(n int) []string {
    	res := make([]string, n)
    
    	for i := 1; i <= n; i++ {
    		if i%3 == 0 && i%5 == 0 {
    			res[i-1] = "FizzBuzz"
    		} else if i%3 == 0 {
    			res[i-1] = "Fizz"
    		} else if i%5 == 0 {
    			res[i-1] = "Buzz"
    		} else {
    			res[i-1] = strconv.Itoa(i)
    		}
    	}
    
    	return res
    }

  • export const fizzBuzz = (n: number): string[] => {
        const res: string[] = []
    
        for (let i = 1; i <= n; i++) {
            if (i % 3 == 0 && i % 5 == 0) {
                res.push("FizzBuzz")
            } else if (i % 3 == 0) {
                res.push("Fizz")
            } else if (i % 5 == 0) {
                res.push("Buzz")
            } else {
                res.push(String(i))
            }
        }
    
        return res
    }

Оценка сложности #

По времени

Сложность по времени линейная — O(n), так как мы итерируемся от 1 до n.

По памяти

Сложность по памяти константная — O(1), так как мы не создаем дополнительных переменных.

Оригинал задачи на Leetcode
< Предыдущая задача
Следующая задача >