A题
【5980. 将字符串拆分为若干长度为 k 的组】
C++
class Solution {public: vector<string> divideString(string s, int k, char fill) { vector<string> strarray; string str = ""; int j = 0; for (auto i = 0; i < s.size(); ++ i) { str = str + s[i]; ++ j; if (j == k) { strarray.push_back(str); str = ""; j = 0; } } if (str.size() > 0 && str.size() < k) { char schar[2] = {fill, 0}; string sfill = schar; for (auto i = str.size(); i < k; ++ i) str = str + sfill; strarray.push_back(str); return strarray; }};
B题
C++
【5194. 得到目标值的最少行动次数】
class Solution {public: int minMoves(int target, int maxDoubles) { int addcount = 0, redoublecount = 0; while (target >= 2) { if (redoublecount < maxDoubles) { int modnum = target % 2; addcount += modnum; ++ redoublecount; target = target / 2; } else { addcount += (target - 1); break; } } return addcount + redoublecount; }};