解题思路
本题非常简单,只需要将输入的字符串逆序输出即可。
方法一:直接逆序遍历
从字符串的最后一个字符开始向前遍历,逐个输出。
方法二:使用双指针交换
将字符串转换为字符数组,用两个指针分别指向首尾,交换字符并向中间移动,直到所有字符都被交换。
方法三:利用语言内置函数
许多编程语言提供了字符串反转的内置函数或方法,直接调用即可。
复杂度分析
- 时间复杂度:O(n),其中 n 为字符串长度,每个字符处理一次。
- 空间复杂度:O(1) 或 O(n)(取决于是否创建新字符串),一般可做到 O(1) 额外空间(原地修改)。
代码示例
C++ 代码(使用 STL)
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
string s;
cin >> s;
reverse(s.begin(), s.end());
cout << s << endl;
return 0;
}
C++ 代码(手动交换)
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
cin >> s;
int l = 0, r = s.length() - 1;
while (l < r) {
swap(s[l], s[r]);
l++;
r--;
}
cout << s << endl;
return 0;
}
Python 代码
s = input()
print(s[::-1])
Java 代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
String reversed = new StringBuilder(s).reverse().toString();
System.out.println(reversed);
}
}
C 代码
#include <stdio.h>
#include <string.h>
int main() {
char s[10005];
scanf("%s", s);
int len = strlen(s);
for (int i = len - 1; i >= 0; i--) {
putchar(s[i]);
}
return 0;
}
总结
本题是字符串处理的基础题,主要考察对字符串遍历或逆序操作的理解。无论使用哪种语言,都应熟练掌握字符串的反转技巧。
暂无评论