跳至主要内容

68. 文本左右对齐

class Solution {
public:
    vector<string> fullJustify(vector<string>& words, int L) {
        vector<string> ans;
        const int n = words.size();
        for (int i = 0; i < n;) {
            int num = 0, len = 0;
            while (i + num < n && words[i + num].size() + len <= L - num) {
                len += words[i + num].size();
                ++num;
            }
            string tmp = words[i];
            for (int j = 1; j < num; ++j) {
                if (i + num >= n) tmp += " ";
                else tmp += string((L - len) / (num - 1) + (j  <= (L - len) % (num - 1)), ' ');
                tmp += words[i + j];
            }
            tmp += string(L - tmp.size(), ' ');
            ans.push_back(tmp);
            i += num;
        }
        return ans;
    }
};

评论

此博客中的热门博文