解题思路
这是一个简单的字符串逆序问题,需要将输入的字符串反转后输出。需要注意的是输入的字符串可能包含空格。
关键点
-
数据范围:
- 字符串长度:
- 字符串可以包含空格
- 字符串长度:
-
处理要求:
- 保持原有的空格
- 完整反转整个字符串
代码
#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
算法及复杂度
算法分析
-
输入处理:
- 使用能读取整行的方法(包括空格)
- C++使用
getline
- Java使用
nextLine()
- Python使用
input()
-
反转方法:
- C++使用
algorithm
库的reverse
函数 - Java使用
StringBuilder
的reverse
方法 - Python使用切片
[::-1]
- C++使用
复杂度分析
- 时间复杂度:
- 其中
是字符串长度,需要遍历一次字符串
- 空间复杂度:
- 原地反转不需要额外空间(某些语言实现可能需要
的空间)