zoukankan      html  css  js  c++  java
  • 剑指Offer

    题目描述

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

    代码

    class Solution {
        void mswap(string &str, int left, int right) {
            if (left >= right) return;
            while (left < right) {
                swap(str[left], str[right]);
                left++;
                right--;
            }
        }
    public:
        string ReverseSentence(string str) {
            string ret = str;
            int slen = ret.size();
            int left = 0;
            for (int i=1; i<=slen; ++i) {
                if (ret[i] == ' ' || i == slen) {
                    mswap(ret, left, i-1);
                    left = i+1;
                }
            }
            mswap(ret, 0, slen-1);
            return ret;
        }
    };
  • 相关阅读:
    linux-常用命令
    linux
    测试基础
    链家笔试1
    链家笔试2
    链家笔试3
    MySql优化
    Http1.1和Http2.0
    Charles学习
    链表中倒数第k个结点
  • 原文地址:https://www.cnblogs.com/charlesblc/p/8449800.html
Copyright © 2011-2022 走看看