zoukankan      html  css  js  c++  java
  • [LeetCode] Text Justification

    The key to this problem is to identify all the words that can be added to a line and then identify the places that require an additional space (to make the spaces as even as possible, we can only add an additional space if needed). This link has a brilliant solution that has a nice formula for the places that require an addtional space. The code is written as follows.

     1 class Solution {
     2 public:
     3     vector<string> fullJustify(vector<string>& words, int maxWidth) {
     4         int idx = 0, n = words.size();
     5         vector<string> justifications;
     6         while (idx < n) {
     7             int width = 0, numWords = 0;
     8             while (idx + numWords < n && width + words[idx + numWords].length() <= maxWidth - numWords) {
     9                 width += words[idx + numWords].length();
    10                 numWords++;
    11             }
    12             string justification = words[idx];
    13             for (int j = 0; j < numWords - 1; j++) {
    14                 if (idx + numWords == n) justification += " ";
    15                 else justification += string((maxWidth - width) / (numWords - 1) + (j < (maxWidth - width) % (numWords - 1)), ' ');
    16                 justification += words[idx + j + 1];
    17             }
    18             justification += string(maxWidth - justification.length(), ' ');
    19             justifications.push_back(justification);
    20             idx += numWords;
    21         }
    22         return justifications;
    23     }
    24 };
  • 相关阅读:
    第七周——上课笔记(一)
    第七周学习视频(二)
    第七周学习视频(一)
    第六周——上课笔记(二)
    第六周——上课笔记(一)
    第五周——上课笔记(二)
    第五周——上课笔记(一)
    第六周学习视频(一)
    iOS
    socket连接方式
  • 原文地址:https://www.cnblogs.com/jcliBlogger/p/4644352.html
Copyright © 2011-2022 走看看