leetcode 68. 文字左右對齊 模擬
不斷嘗試,考慮各種情況
#define debug(x) cout<<#x<<": "<<(x)<<endl;
class Solution {
public:
vector<string> fullJustify(vector<string>& words, int maxWidth) {
vector<string> ret;
vector<string>space;
for(int i=0;i<maxWidth;i++){
space.push_back( string(i,' ') );
//debug(string(i,'2'))
}
string temp = "";
int tlen = 0;
int tcnt = 0;
int pos = 0;
int i=0;
for(i = 0;pos + i< words.size();){
//debug(words[pos+i])
if(tlen + words[pos+i].size() < maxWidth){
tlen += words[pos+i].size() + 1;
tcnt++;
i++;
continue;
}
if(tlen + words[pos + i].size() == maxWidth ){
tlen += words[pos+i].size();
tcnt++;
int resSp = maxWidth - tlen;
if(tcnt==1){
temp += words[pos];
}else{
int eachlen = resSp / (tcnt-1);
int res = resSp % (tcnt-1);
for(int j=0;j < tcnt-1;j++){
temp += words[pos+j] + space[1] +(eachlen>0?space[eachlen]:"") +
(j < res?space[1] :"");
}
temp += words[pos+tcnt-1];
}
pos += i+1;
}
else{
tlen--;
int resSp = maxWidth - tlen;
if(tcnt==1){
temp += words[pos] + space[resSp];
}else{
//["Listen ","to ","many, ","speak ","to a","few. "]
//["Listen","to ","many, ","speak ","to a","few. "]
int eachlen = resSp / (tcnt-1);
int res = resSp % (tcnt-1);
for(int j=0;j < tcnt-1;j++){
temp += words[pos+j] + space[1] +(eachlen>0?space[eachlen]:"") +
(j < res?space[1] :"");
}
temp += words[pos+tcnt-1];
}
pos += i;
}
ret.push_back(temp);
temp = "";
tlen = 0;
tcnt = 0;
i=0;
}
//debug(tcnt)
//debug(tlen)
int resSp = maxWidth - tlen;
if(tcnt==0){
return ret;
}
if(tcnt==1){
temp += words[pos] + " ";
temp += space[resSp];
}else{
int eachlen = resSp / (tcnt-1);
int res = resSp % (tcnt-1);
//debug(eachlen)
for(int j=0;j < tcnt;j++){
temp += words[pos+j] + space[1] ;
}
temp += space[maxWidth-temp.size()];
}
ret.push_back(temp);
//["This idds addn","exae of text","justification. "]
return ret;
}
};
相關文章
- [LeetCode] 68. Text JustificationLeetCode
- linux對齊文字Linux
- canvas textAlign 文字對齊Canvas
- css文字兩端對齊CSS
- CAD表格文字對齊方式
- CSS文字水平居中對齊CSS
- 如何讓文字居右對齊,換行後又居左對齊
- 【小技巧】CSS文字兩端對齊CSS
- CSS文字框與驗證碼垂直對齊CSS
- 使用OkHttp模擬登陸LeetCodeHTTPLeetCode
- WPS/Word中公式與文字不對齊的問題公式
- 跨模態語義關聯對齊檢索-影像文字匹配(Image-Text Matching)CVPR2022
- LeetCode-20. 有效的括號(棧模擬)LeetCode
- 【LEETCODE】模擬面試-215. Kth Largest EleLeetCode面試
- vxe-table 設定單元格對齊方式,左對齊、右對齊
- RadioButton文字按鈕間距設定,按鈕在文字右端顯示,RadioButton 右端對齊
- 人類偏好就是尺!SPPO對齊技術讓大語言模型左右互搏、自我博弈模型
- LeetCode題解(Offer28):判斷二叉樹是否左右對稱(Python)LeetCode二叉樹Python
- 使用 Raku 編寫簡單的文字識別模擬程式
- css居中對齊大全CSS
- golang 位元組對齊Golang
- 記憶體對齊記憶體
- “聯合對抗火災”最真實的消防模擬遊戲《模擬消防英豪》遊戲
- ADOV路由和DSR路由matlab對比模擬路由Matlab
- 能力對齊、長文字、Claude 3,這次聊聊大模型重點技術路徑大模型
- 【CSS】段落文字實現兩端對齊,不滿一行則不需要CSS
- 人類自身都對不齊,怎麼對齊AI?新研究全面審視偏好在AI對齊中的作用AI
- LeetCode-2. 兩數相加(連結串列+大數加法模擬)LeetCode
- 元宇宙技術對於虛擬模擬應用的影響元宇宙
- 細粒度對齊無需仔細標註了!淘天提出視覺錨定獎勵,自我校準實現多模態對齊視覺
- SAP UI5 XML 檢視裡 label 和 text 控制元件文字對齊問題UIXML控制元件
- C++ 位元組對齊C++
- GO 記憶體對齊Go記憶體
- 理解記憶體對齊記憶體
- css使用transform垂直對齊CSSORM
- 1218 圖片對齊模式模式
- 對 Mac 原生終端模擬器的增強Mac
- 三國英雄對戰——控制檯輸出模擬