题目分析

  1. 题目给定了我们一个字符串
  2. 我们要返回这个字符串的倒序结果输出

方法一:调用reverse函数

  • 实现思路
    • c++中有支持将字符串倒序的函数reverse
    • 我们输出倒转后的结果即可
#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

int main() {
    string s;
    cin >> s;
    reverse(s.begin(), s.end());		// 调用reverse函数倒转
    cout << s;
    return 0;
}

复杂度分析

  • 时间复杂度:O(n)O(n)reverse函数的开销
  • 空间复杂度:O(1)O(1),未引入额外的空间占用

方法二:遍历并倒转

  • 实现思路
    • 对输入字符串进行倒序遍历
    • 将末尾的字符逐个压入新字符串的末尾
    • 返回新的字符串

alt

#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

int main() {
    string s;
    cin >> s;
    string t;
    for(int i = s.size() - 1; i >= 0; i--) {		// 遍历字符串
        t.push_back(s[i]);							// 将末尾元素进行push_back操作到新的字符串末尾
    }
    cout << t;
    return 0;
}

复杂度分析

  • 时间复杂度:O(n)O(n),遍历字符串的时间代价
  • 空间复杂度:O(n)O(n),引入额外的字符串,和原字符串的长度相同