• 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;
        }
    };
    */
  • 相关阅读:
    java smtp 发送邮件
    Java 数据库连接配置
    kettle基础操作数据同步
    Java上传文件到服务器指定位置
    Java 操作word
    Java 导出Zip文件
    Java 遍历二叉树字符串
    一款基于vue.js 和node构建个人博客项目
    CSS选择器介绍和优先级
    CSS Position属性
  • 原文地址:https://www.cnblogs.com/parzulpan/p/10061430.html
Copyright © 2020-2023  润新知