简介

推荐使用API

code

class Solution {
    public String reverseWords(String s) {
        s = s.trim();
        // 正则撇皮连续的空白字符作为风格符号
        List<String> wordList = Arrays.asList(s.split("\\s+")); // “\s+”则表示匹配任意多个上面的字符。另因为反斜杠在Java里是转义字符,所以在Java里,我们要这么用“\\s+”. 以空格的方式进行分割然后存储为List
        Collections.reverse(wordList);
        return String.join(" ", wordList);// 以空格的方式粘合这些字符串
    }
}
class Solution {
public:
    string reverseWords(string s) {
        // 消除句子前面||后面的空格
        for(auto it=s.begin(); it!=s.end(); ){
            if(*it == ' '){
                it = s.erase(it); // s.erase 只能应用于迭代器  不能应用于反向迭代器, 我丢
            }else{
                break;
            }
        }
        for(int i=s.size() - 1; i>=0; i--){
            if(s[i] == ' '){
                s.erase(i, 1);
            }
            else{
                break;
            }
        }

        vector<string> v;
        string tmp;
        for(int i=0; i<s.size(); i++){
            if(s[i] == ' '){
                if(tmp.size()) {
                    v.push_back(tmp);
                }
                tmp.clear();
            }else{
                tmp += s[i];
            }
        }
        if(tmp.size()){
            v.push_back(tmp);
        }
        string rlt;
        for(int i=v.size() - 1; i>=0; i--){
            if(i == v.size() - 1){
                rlt += v[i];
            }else{
                rlt += " ";
                rlt += v[i];
            }
        }
        return rlt;
    }
};

自己实现的比较麻烦,

posted on 2021-05-23 17:15  HDU李少帅  阅读(39)  评论(0编辑  收藏  举报