题目来源
题目描述
题目解析
class Solution {
public:
string capitalizeTitle(string title) {
std::string ans, curr;
for (int i = 0; i < title.size(); ++i) {
if(title[i] == ' '){
if(curr.size() > 2){
curr[0] = toupper(curr[0]);
}
ans.append(curr);
ans.push_back(' '); // 是单个空格隔开的
curr.clear();
}else{
curr.push_back(tolower(title[i]));
}
}
// 不含有任何后导空格, 因此处理最后一个
if(curr.size() > 2){
curr[0] = toupper(curr[0]);
}
ans.append(curr);
return ans;
}
};
class Solution {
public:
string capitalizeTitle(string title) {
int nn = title.size();
int ll = 0, rr = 0;
title.push_back(' '); // 避免处理末尾的边界条件
while (rr < nn){
while (title[rr] != ' '){
++rr;
}
if(rr - ll > 2){
title[ll] = toupper(title[ll]);
++ll;
}
while (ll < rr){
title[ll] = tolower(title[ll]);
++ll;
}
ll = rr + 1;
++rr;
}
title.pop_back();
return title;
}
};