leetcode 68 文字左右對齊

2021-09-02 06:54:12 字數 1024 閱讀 6937

原理很簡單,但是寫起來比較複雜,首先將不超過maxwidth的字串放入乙個新的陣列result,不要忽略空格所佔空間

對result進行處理,首先去除字串最後面的乙個或多個空格,然後計算去除空格後的字串大小,用過最大大小減去去除空格之後的字串大小,得到d 用除以單詞個數-1 即為原來每個空格位置需要插入的空格個數 

對於只有乙個單詞的字串和最後乙個字串只需要在最後麵補足夠的空格即可

std::vectorfulljustify(std::vector& words, int maxwidth) 

d2.push_back(d1);

result.push_back(s1);

}std::string s2="";

for(int i=0;i

continue;

}int c=d2[i].size()-1;

int d=maxwidth-result[i].size();

int x1=d/c;

int x2=d%c;

s2=d2[i][0];

for(int j=1;j

}else

}s2+=d2[i][j];

}result[i]=s2;

}result[result.size()-1].erase(result[result.size()-1].find_last_not_of(" ")+1);

int t=result[result.size()-1].size();

int d=maxwidth-t;

for(int i=0;i

result[result.size()-1]+=" ";

return result;

}

LeetCode68 文字左右對齊

給定乙個單詞陣列和乙個長度 maxwidth,重新排版單詞,使其成為每行恰好有 maxwidth 個字元,且左右兩端對齊的文字。你應該使用 貪心演算法 來放置給定的單詞 也就是說,盡可能多地往每行中放置單詞。必要時可用空格 填充,使得每行恰好有 maxwidth 個字元。要求盡可能均勻分配單詞間的空...

LeetCode68文字左右對齊

1.先取出一行能夠容納的單詞,將這些單詞根據規則填入一行 2.計算出額外空格的數量 spacecount,額外空格就是正常書寫用不到的空格 2.1除去所有單詞的長度 3.平均分布 簡單來說就是商和餘數的計算 4.特殊處理 4.1一行只有乙個單詞,單詞左對齊,右側填滿空格 4.2最後一行,所有單詞左對...

Leetcode 68文字左右對齊 C

思路 貪心演算法,一行一行的處理。1.首先要確定每一行能放下的單詞數。具體方法是 將單詞數n和空格數n 1與每 一行的最大字元數maxwidth來比較。2.確定了單詞數後,還要判斷是否為最後一行,最後一行每個單詞間加乙個空格。如果不是最後一行,要判斷空格數和單詞的間隔數n 1是否整除,整除的話空格數...