zoukankan      html  css  js  c++  java
  • LeetCode557 反转字符串中的单词 III

    给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。

    示例 1:

    输入: "Let's take LeetCode contest"
    输出: "s'teL ekat edoCteeL tsetnoc" 
    

    注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。

     


     

     

    //章节 - 数组和字符串    
    //五、小结
    //4.反转字符串中的单词 III
    /*
    算法思想:
        首先来看使用字符流处理类stringstream来做的方法,相当简单,就是按顺序读入每个单词进行翻转即可。
    */
    //算法实现:
    class Solution {
    public:
        string reverseWords(string s) {
            string res = "", t = "";
            istringstream is(s);
            while (is >> t) {
                reverse(t.begin(), t.end());
                res += t + " ";
            }
            res.pop_back();
            return res;
        }
    };
    
    /*
    算法思想:
        用两个指针,分别指向每个单词的开头和结尾位置,确定了单词的首尾位置后,再用两个指针对单词进行首尾交换即可,有点像验证回文字符串的方法。
    */
    //算法实现:
    /*
    class Solution {
    public:
        string reverseWords(string s) {
            int start = 0, end = 0, n = s.size();
            while (start < n && end < n) {
                while (end < n && s[end] != ' ') 
                    ++end;
                for (int i = start, j = end - 1; i < j; ++i, --j) {
                    swap(s[i], s[j]);
                }
                start = ++end;
            }
            return s;
        }
    };
    */
  • 相关阅读:
    Hacking Tools
    SDN 网络系统之 Mininet 与 API 详解
    Rust安装配置
    研华 FWA-3231 单路E3平台
    Netscaler Configuration Architecture
    TCP拥塞控制算法纵横谈-Illinois和YeAH
    TCP协议疑难杂症全景解析
    Windows WMIC命令使用详解(附实例)
    Windows一个文件夹下面最多可以放多少文件
    喝酒游戏,概率分布和卷积
  • 原文地址:https://www.cnblogs.com/parzulpan/p/10061430.html
Copyright © 2011-2022 走看看