解题思路

这是一个简单的字符串逆序问题,需要将输入的字符串反转后输出。需要注意的是输入的字符串可能包含空格。

关键点

  1. 数据范围:

    • 字符串长度:
    • 字符串可以包含空格
  2. 处理要求:

    • 保持原有的空格
    • 完整反转整个字符串

代码

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

int main() {
    string str;
    // 使用getline读取整行,包括空格
    getline(cin, str);
    
    // 直接反转字符串
    reverse(str.begin(), str.end());
    
    cout << str << endl;
    return 0;
}
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // 使用nextLine()读取整行,包括空格
        String str = sc.nextLine();
        
        // 使用StringBuilder反转字符串
        StringBuilder sb = new StringBuilder(str);
        System.out.println(sb.reverse().toString());
    }
}
while True:
    try:
        # 读取整行,包括空格
        s = input()
        # 使用切片反转字符串
        print(s[::-1])
    except:
        break

算法及复杂度

算法分析

  1. 输入处理:

    • 使用能读取整行的方法(包括空格)
    • C++使用 getline
    • Java使用 nextLine()
    • Python使用 input()
  2. 反转方法:

    • C++使用 algorithm 库的 reverse 函数
    • Java使用 StringBuilderreverse 方法
    • Python使用切片 [::-1]

复杂度分析

  • 时间复杂度: - 其中 是字符串长度,需要遍历一次字符串
  • 空间复杂度: - 原地反转不需要额外空间(某些语言实现可能需要 的空间)