J - Text Reverse HDU - 1062

格式错误2遍:没考虑到连续两个空格的情况,遇到空格最后要输出这个空格,因为题目只需要转换单词。

另外,开cin,cout加速要注意读入不能用scanf,printf,puts,getchar这些。getline,streamstream 可以结合使用

代码:

using namespace std;
#define maxn 19999
#define rep(i,a,b) for(int i=(a);i<(b);i++)
#define ll long long
string s;
string tmp;
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    //由于开了cin,cout加速,最好全部用getline解决,配合stringstream
    int t;
    getline(cin,s);
    stringstream ss;
    ss<<s;
    ss>>t;



    while(t--)
    {
        getline(cin,s);
        int size=s.size();
        for(int i=0; i<size; i++)
        {
            if(s[i]==' ')
            {
                int len=tmp.size();
                if(len!=0){
                    rep(j,0,len)
                    {
                        cout<<tmp[len-j-1];
                    }
                    tmp.clear();
                }
                cout<<" ";
            }
            else
                tmp+=s[i];
        }
        int len=tmp.size();
        if(len)
        {
            rep(j,0,len)
            {
                cout<<tmp[len-j-1];
            }

        }

猜你喜欢

转载自www.cnblogs.com/pipitongkw1/p/10705330.html