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

    Description:

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

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

    Clarification:
    • What constitutes a word?
      A sequence of non-space characters constitutes a word.
    • Could the input string contain leading or trailing spaces?
      Yes. However, your reversed string should not contain leading or trailing spaces.
    • How about multiple spaces between two words?
      Reduce them to a single space in the reversed string.

    分析: 根据题目中的解释,基本就可以弄清这个题目的基本要求. 翻转字符串中的单词。 基本想法是用stack存所有的单词,然后重建字符串。

    代码中的注释有分析,后面那个runtime error告诉我们几种极端测试检查是需要的!

    然后注意那个常用trick,在处理一些边界条件时还是很有用的 

     1 class Solution {
     2 public:
     3     void reverseWords(string &s) {
     4         stack<string> rec;
     5         if(s.empty()) return;
     6         //这里有这个trick,在最后加一个标志字符,象征结束,免得还要在后面循环结束后,看是否还有
     7         //单词没有加入stack中,常用trick
     8         s = s+" ";
     9         string onec;
    10         int startind = -1;
    11         for(int i=0;i<s.size();i++)
    12         {
    13             if(s[i]==' ' && startind==-1) continue;
    14             else if(s[i]==' '){
    15                 onec.assign(s.begin()+startind,s.begin()+i);
    16                 rec.push(onec);
    17                 onec.clear();
    18                 startind = -1;
    19                 continue;
    20             }
    21             else if (startind==-1) startind=i;
    22             
    23         }
    24         s="";
    25         //必须判断rec是否为空,否则会runtime error,因为后面的删除操作
    26         if(rec.empty()) return;
    27         while(!rec.empty())
    28         {
    29             s = s+ rec.top()+" ";
    30             rec.pop();
    31         }
    32         s.erase(s.end()-1);
    33         
    34     }
    35 };
  • 相关阅读:
    tensorflow模型的保存与恢复
    Anaconda Linux端环境管理
    Windows环境下Redis集群部署
    Error fetching https://ruby.taobao.org/:RubySass淘宝镜源无效解决
    ORM 轻量级框架 Dapper(介绍)
    TypeScript 数据类型
    TypeScript 环境搭建
    微信小程序反编译
    利用Fiddler实现手机抓包
    SQL 优化常用查询
  • 原文地址:https://www.cnblogs.com/soyscut/p/3883773.html
Copyright © 2011-2022 走看看