最长公共前缀
string longestCommonPrefix(vector<string>& strs) {
string out;
if(strs.empty())
return out;
sort(strs.begin(),strs.end());
out = strs[0];
bool isRight = true;
for(int r = 0;(r < strs[0].size()) && isRight;++r){
isRight = true;
for(int n = 0;(n + 1 < strs.size()) && isRight;++n){
if(strs[n][r] != strs[n + 1][r])
isRight = false;
}
if(!isRight){
out.erase(r);
}
}
return out;
}
翻转字符串里的单词
从后向前遍历,发现" X"形式,向后读取信息到out中直到碰到’ '或者s的极限后添加一个空格,如果起始处也是有单词的,读一个开始处单词。最后检验是否存在末尾的多余空格,有就删去。
string reverseWords(string s) {
if(s.size() == 0 || s.empty()) return s;
string out;
int size = s.size();
for(int r = 1;r < size;++r){
if(s[size - r - 1] == ' ' && s[size - r] != ' '){
for(int n = size - r;s[n] != ' ' && n < size;++n){
out.push_back(s[n]);
}
out.push_back(' ');
}
}
if(s.front() != ' '){
for(int n = 0;s[n] != ' ' && n < size;++n){
out.push_back(s[n]);
}
}
if(out.back() == ' ') out.pop_back();
return out;
}