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;
}
};
相關文章
- 文字對齊位置
- linux對齊文字Linux
- [LeetCode] 68. Text JustificationLeetCode
- css文字兩端對齊CSS
- canvas textAlign 文字對齊Canvas
- 如何讓文字垂直居中對齊文字框
- CAD表格文字對齊方式
- CSS文字水平居中對齊CSS
- 如何讓文字居右對齊,換行後又居左對齊
- 文字框與文字垂直對齊程式碼例項
- 【小技巧】CSS文字兩端對齊CSS
- 文字如何做到垂直居中對齊
- Bootstrap系列 -- 5. 文字對齊方式boot
- 實現文字標題和input文字框垂直居中對齊
- CSS文字框與驗證碼垂直對齊CSS
- 圖示文字水平對齊方法總結
- 如何讓input文字框和圖片對齊
- 圖示和文字無法對齊處理方法
- 使用OkHttp模擬登陸LeetCodeHTTPLeetCode
- <摘錄>位元組對齊(強制對齊以及自然對齊)
- iOS上如何讓按鈕文字左對齊問題iOS
- css文字兩端對齊效果相容各瀏覽器CSS瀏覽器
- <input>文字框和驗證碼圖片垂直對齊
- 可以左右居中對齊並可設定DisplayFormat的Edit控制元件 (轉)ORM控制元件
- WPS/Word中公式與文字不對齊的問題公式
- header問題:a中加上img後文字無法對齊Header
- 淺談虛擬函式表與位元組對齊函式
- 虛擬化網路演進模擬對話
- 人類偏好就是尺!SPPO對齊技術讓大語言模型左右互搏、自我博弈模型
- CSS讓同一行文字和輸入框對齊CSS
- LeetCode-20. 有效的括號(棧模擬)LeetCode
- 跨模態語義關聯對齊檢索-影像文字匹配(Image-Text Matching)CVPR2022
- 用div css模擬表格對角線CSS
- checkbox和後面文字無法居中對齊的解決方案
- 分享一個仿微信模擬器,可以快速模擬微信對話,微信紅包等。
- “聯合對抗火災”最真實的消防模擬遊戲《模擬消防英豪》遊戲
- 對齊之美
- 位元組對齊