每日一题(2022-01-29):将字符串拆分为若干长度为 k 的组

每日一题(2022-01-29):将字符串拆分为若干长度为 k 的组

来源:力扣
难度:简单
题目:2138. 将字符串拆分为若干长度为 k 的组

题目详情

原题截图.png

题解思路

没什么好说的,极限压行的代码,几点小技巧:

  • std::string的substr方法,当截取长度大于字符串总长度时,会自动调整截取长度到字符串末尾,所以无需对字符串总长度进行判断就可以实现未填充前的字符串划分;
  • 使用std::string的如下原型的构造函数可以直接创建一个由指定长度的字符组成的字符串:
    	std::string(const size_t _Count, const char _Ch);
    

代码结果

class Solution {
public:
    vector<string> divideString(string s, int k, char fill) {
        vector<string> vecResult;

        int iLenStr = s.size();
        int iIdxStrSub = -k;

        while ((iIdxStrSub += k) < iLenStr)
            vecResult.push_back(s.substr(iIdxStrSub, k));

        vecResult.back() += string(k - vecResult.back().size(), fill);

        return vecResult;
    }
};

运行结果.png