首页 > 其他 > 详细

leetcode 151 翻转字符串

时间:2021-05-23 22:41:25      阅读:12      评论:0      收藏:0      [点我收藏+]

简介

推荐使用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;
    }
};

自己实现的比较麻烦,

leetcode 151 翻转字符串

原文:https://www.cnblogs.com/eat-too-much/p/14801563.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!