zoukankan      html  css  js  c++  java
  • 剑指offer-翻转单词序列

    描述

    牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“nowcoder. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a nowcoder.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?
     

    求解思路:

    1. 很简单,通过空格划分元素(字串),然后把字串倒过来就行。
    2. 但是看题要仔细,还以为字串内部也要翻转,浪费了我很多时间。
     1 class Solution {
     2 public:
     3     string ReverseSentence(string str) {
     4         // 首先得通过空格划分哪些字符属于一个整体(字串)
     5         // 然后翻转子串
     6         vector<string> strv;
     7         string::iterator ite=str.begin();
     8         string tmp="";
     9         // 完成子串的划分
    10         while(ite!=str.end()){
    11             if(*ite!=' '){  // 如果不是空格,就划分到字串中
    12                 tmp+=*ite;
    13             }else{
    14                 strv.push_back(tmp);
    15                 tmp="";
    16             }
    17             ++ite;
    18         }
    19         strv.push_back(tmp);
    20         // 翻转
    21         int rec=strv.size()-1;
    22         string res="";
    23         while(rec>=0){
    24             res+=strv[rec]+' ';
    25             --rec;
    26         }
    27         return res.substr(0, res.length() - 1);
    28     }
    29 };
    心之所愿,永不相忘
  • 相关阅读:
    .net MVC 下载文件乱码问题解决方案
    javascript将json转字符串
    js中将字符串转换成json的三种方式
    mvc项目,导出到Excel,中文显示乱码
    20160606面试题总结
    bzoj 4318: OSU!
    bzoj 1419: Red is good
    Codeforces 123 E Maze
    HDU 4336 Card Collector
    Codeforces 540 D Bad Luck Island
  • 原文地址:https://www.cnblogs.com/zgll/p/15075701.html
Copyright © 2011-2022 走看看