双指针

单词倒排

http://www.nowcoder.com/questionTerminal/81544a4989df4109b33c2d65037c5836

#include<bits/stdc++.h>
using namespace std;


const int maxn=1e5+5;
vector<string> ret;


inline void solve(const string & str )
{    
    int Len=str.size();
    int Left=Len-1;
    int Right=Len-1;
    while( Left>=0 )
    {
        if( ' '!=str[Left] )
        {
            --Left;
        }
        else if( ' '==str[Left] )
        {
            if( Left==Right )
            {
                --Left;
                --Right;
            }
            else
            {
                string temp=str.substr( Left+1, Right-Left );
                ret.push_back( temp );
                Right=Left;

                --Left;
                --Right;
            }
        }
    }


    //收尾
    if( Left!=Right )
    {
        string temp=str.substr( Left+1, Right-Left );
        ret.push_back( temp );
    }

}

int main()
{
    char str[maxn];
    while( cin.getline(str,maxn) )
    {
        ret.clear();
        string temp=str;
        int L=temp.size();
        for(int i=0; i<L; ++i)
        {
            if( 0==isalpha( temp[i] ) )
            {
                temp[i]=' ';
            }
        }

        solve( temp );
        int Len=ret.size();
        for(int i=0; i<Len; ++i)
        {
            printf("%s%c", ret[i].c_str(), (i!=Len-1) ? ' ' : '\n' );
        }
    }


    return 0;
}
全部评论

相关推荐

allin秋招的单身...:我投过这家 上来就发个设计图给我,让我做好发到他邮箱
点赞 评论 收藏
分享
06-17 00:26
门头沟学院 Java
程序员小白条:建议换下项目,智能 AI 旅游推荐平台:https://github.com/luoye6/vue3_tourism_frontend 智能 AI 校园二手交易平台:https://github.com/luoye6/vue3_trade_frontend GPT 智能图书馆:https://github.com/luoye6/Vue_BookManageSystem 选项目要选自己能掌握的,然后最好能自己拓展的,分布式这种尽量别去写,不然你只能背八股文了,另外实习的话要多投,尤其是学历不利的情况下,多找几段实习,最好公司title大一点的
无实习如何秋招上岸
点赞 评论 收藏
分享
07-25 13:42
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务