第十二天

最长公共前缀

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;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值