leetcode-----68. 文本左右对齐

时间:2020-07-11
本文章向大家介绍leetcode-----68. 文本左右对齐,主要包括leetcode-----68. 文本左右对齐使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

代码

class Solution {
public:
    vector<string> fullJustify(vector<string>& words, int maxWidth) {
        vector<string> ans;
        for (int i = 0; i < words.size(); ++i) {
            int j = i + 1; 
            int len = words[i].size();
            while (j < words.size() && len + 1 + words[j].size() <= maxWidth) len += 1 + words[j++].size();
            string line;
            if (j == words.size() || j == i + 1) {
                line += words[i];
                for (int k = i + 1; k < j; ++k) line += ' ' + words[k];
                while (line.size() < maxWidth) line += ' '; 
            } else {
                int cnt = j - i - 1, r = maxWidth - len + cnt;
                line += words[i];
                int k = 0;
                while (k < r % cnt) line += string(r / cnt + 1, ' ') + words[i + k + 1], k++;
                while (k < cnt) line += string(r / cnt, ' ') + words[i + k + 1], k++;
            }
            ans.push_back(line);
            i = j - 1;
        }
        return ans;
    }
};

原文地址:https://www.cnblogs.com/clown9804/p/13282530.html