• E : DS堆栈--逆序输出(STL栈使用)


    Description

    C++中已经自带堆栈对象stack,无需编写堆栈操作的具体实现代码。

    本题目主要帮助大家熟悉stack对象的使用,然后实现字符串的逆序输出

    输入一个字符串,按字符按输入顺序压入堆栈,然后根据堆栈后进先出的特点,做逆序输出

    stack类使用的参考代码

    • 包含头文件: #include
    • 创建一个堆栈对象s(注意stack是模板类):stack s; //堆栈的数据类型是字符型
    • 把一个字符ct压入堆栈:s.push(ct);
    • 把栈顶元素弹出:s.pop();
    • 获取栈顶元素,放入变量c2c2 = s.top();
    • 判断堆栈是否空:s.empty(),如果为空则函数返回true,如果不空则返回false

    Input

    第一行输入t,表示有t个测试实例 第二起,每一行输入一个字符串,注意字符串不包含空格

    字符串的输入可以考虑以下代码:

    1. #include
    2. int main()
    3. {
    4. string str;
    5. int len;
    6. cin >> str; //把输入的字符串保存在变量str
    7. len = str.length() //获取输入字符串的长度
    8. }

    Output

    每行逆序输出每一个字符串

    Sample

    #0
    Input

    Copy

    2
    abcdef
    aabbcc
    Output

    Copy

    fedcba
    ccbbaa
    1. #include
    2. #include
    3. #include
    4. using namespace std;
    5. int main()
    6. {
    7. int t;
    8. cin >> t;
    9. while (t--)
    10. {
    11. stack<char> s; // 创建一个字符栈
    12. char str[1000], c[1000];// 定义输入字符串和输出字符串
    13. int len, i;
    14. cin >> str;
    15. len = strlen(str); 获取输入字符串的长度
    16. for (i = 0; i < len; i++)
    17. {
    18. s.push(str[i]);//将输入字符串的每个字符依次压入栈中
    19. }
    20. for (i = 0; i < len; i++)
    21. {
    22. c[i] = s.top();//从栈顶取出字符并放入输出字符串;当调用 s.top() 时,它会返回栈顶元素的引用。
    23. s.pop(); 弹出栈顶元素
    24. }
    25. for (i = 0; i < len; i++)
    26. cout << c[i];
    27. cout <
    28. }
    29. return 0;
    30. }
    31. //在C++标准库中,stack是一个容器适配器,它提供了后进先出(LIFO)的数据结构特性。通过使用stack容器,我们可以方便地实现对数据的先进后出(FILO)操作。
    32. //在这个特定的代码段中,stack s; 声明了一个名为 s 的栈对象,它的元素类型为 char,即字符类型。这个栈可以用于存储和访问一系列字符数据。
    33. //需要注意的是,stack容器提供了一些常用的成员函数,如 push() 用于将元素压入栈顶,pop() 用于从栈顶弹出元素,top() 用于获取栈顶元素等。这些函数可以帮助我们进行栈的操作和管理。
    34. /**********************************************************************
    35. Problem: 1081
    36. User: 202200201108
    37. Language: C++
    38. Result: AC
    39. Time:7 ms
    40. Memory:2220 kb
    41. **********************************************************************/

  • 相关阅读:
    Flutter 的 showDialog 和 showCupertinoDialog 有什么区别?
    将Python程序打包成exe文件
    MYSQL入门与进阶(七)
    银行测试人员谈测试需求
    java计算机毕业设计ssm+vue+elementUI在线电影评论投票系统
    Vulnhub_CTF-4
    SpringBoot漏洞大全
    微服务框架 SpringCloud微服务架构 16 SpringAMQP 16.9 消息转换器
    JavaScript深浅拷贝实现
    Linux timedatectl控制系统时间和日期
  • 原文地址:https://blog.csdn.net/m0_73605639/article/details/133633500