题目来源
题目描述
题目解析
class Solution {
public:
string reorderSpaces(string text) {
int black_cnt = 0, word_cnt = 0;
std::string curr;
std::vector<std::string> words;
for (int i = 0; i < text.size(); ++i) {
if(isalpha(text[i])){
curr.push_back(text[i]);
if(i == text.size() - 1){
words.push_back(curr);
curr.clear();
word_cnt++;
}
}else{
if(!curr.empty()){
words.push_back(curr);
curr.clear();
word_cnt++;
}
black_cnt++;
}
}
std::string ans;
if(word_cnt == 1){
ans = words[0];
ans.insert(ans.size(), black_cnt, ' ');
}else{
// > 1;
int sh = black_cnt / (word_cnt - 1);
int yu = black_cnt % (word_cnt - 1);
for (int i = 0; i < word_cnt; ++i) {
ans.append(words[i]);
if(i == word_cnt - 1){
ans.insert(ans.size(), yu, ' ');
}else{
ans.insert(ans.size(), sh, ' ');
}
}
}
return ans;
}
};