zoukankan      html  css  js  c++  java
  • 【Leetcode】Reverse Words in a String

    Given an input string, reverse the string word by word.

    For example,
    Given s = "the sky is blue",
    return "blue is sky the".

    补充说明:

    单词是指空格之间的字符序列。

    输入中可能有首部或尾部的空格,输出中应去除。

    两个单词之间的多个空格应该压缩为单个空格。

    解法:从后向前扫描字符串,找到单词时,插入返回字符串的末尾。

     1 class Solution {
     2 public:
     3     void reverseWords(string &s) {
     4         string ret;
     5         int begin = s.size() - 1, len = 0;
     6         while (begin >= 0) {
     7             while (begin >= 0 && s[begin] == ' ') {
     8                 --begin;
     9             }
    10             while (begin >= 0 && s[begin] != ' ') {
    11                 --begin;
    12                 ++len;
    13             }
    14             if (len > 0) {
    15                 if(ret.empty()) {
    16                     ret = s.substr(begin + 1, len);
    17                 } else {
    18                     ret = ret + " " + s.substr(begin + 1, len);
    19                 }
    20                 len = 0;
    21             }
    22         }
    23         s = ret;
    24     }
    25 };
  • 相关阅读:
    Commander Nodejs 命令行接口
    数据库集群 ---续集
    数据库集群
    实时查看linux下的日志
    自动化测试
    python中list和dict
    super与this的用法
    数据类型
    父类调用子类方法
    子类调用父类方法
  • 原文地址:https://www.cnblogs.com/dengeven/p/3740220.html
Copyright © 2011-2022 走看看