leetcode 412fizbuss
其实就是对某一个数,若其为一个因数的倍数,则输出特定的字符串。土方法是设置很多判断条件,简单的情况倒还可以,但是要是因数多了点,就不适用。比较好的方法是将所有需要判断的因数与对应的字符串放在一个map里面,然后每个数都遍历一下这个map中的键值,这样就能减少判断,并且大大减少是多个因数倍数时输出的复杂度,贴代码
class Solution { public: vector<string> fizzBuzz(int n) { vector<string> yes; map<int,string> good = {{3,"Fizz"},{5,"Buzz"}}; for(int i = 1 ; i <=n ;i++) { string temp = ""; for(auto key:good) { if(i%key.first == 0) temp+=key.second; } if(temp == "") temp+=to_string(i); yes.push_back(temp); } return yes; } };

浙公网安备 33010602011771号