• PAT-B1009 说反话


    1009 说反话 (20分)

    给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。

    输入格式:

    测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。

    输出格式:

    每个测试用例的输出占一行,输出倒序后的句子。

    输入样例:

    Hello World Here I Come

    输出样例:

    Come I Here World Hello

    题解

    方法一: 栈与字符串操作

    #include <bits/stdc++.h>
    using namespace std;
    
    int main()
    {
        string str;
        stack<string> s;
        string map[10];
        getline(cin, str);
        int num = 0;
        for (int i = 0; i < str.size(); i++)
        {
            if (str[i] != ' ')
            {
                map[num] += str[i];
            }
            else
            {
                s.push(map[num]);
                num++;
            }
        }
        s.push(map[num]);
    
        while (!s.empty())
        {
            cout << s.top();
            s.pop();
            if (s.size() != 0)
                cout << " ";
        }
        return 0;
    }
    

    方法二:利用sstream

    sstream在这里简单说就是 对于输入流,以 空格 为分隔符把该行分隔开来

    #include <iostream>
    #include <stack>
    #include <sstream>
    
    using namespace std;
    
    int main()
    {
        string str;
        stack<string> s;
        getline(cin, str);
        stringstream ss;
        ss << str;
        while (ss >> str)
            s.push(str);
        while (!s.empty())
        {
            cout << s.top();
            s.pop();
            if (s.size() != 0)
                cout << " ";
        }
        return 0;
    }
    
  • 相关阅读:
    RHEL安装oracle客户端(版本为11.2)
    为服务器设置固定IP地址
    RHEL配置本地yum
    网线水晶头内线排序
    《汇编语言(第三版)》王爽著----读书笔记01
    kali系统越来越大解决
    Markdown入门简介
    Linux之tail命令
    Linux之df命令
    Linux命令
  • 原文地址:https://www.cnblogs.com/coderzjz/p/12726701.html
Copyright © 2020-2023  润新知