题解 | #字符串反转#
字符串反转
http://www.nowcoder.com/practice/e45e078701ab4e4cb49393ae30f1bb04
题目分析
- 题目给定了我们一个字符串
- 我们要返回这个字符串的倒序结果输出
方法一:调用reverse函数
- 实现思路
- c++中有支持将字符串倒序的函数
reverse
- 我们输出倒转后的结果即可
- c++中有支持将字符串倒序的函数
#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;
}
复杂度分析
- 时间复杂度:,
reverse
函数的开销 - 空间复杂度:,未引入额外的空间占用
方法二:遍历并倒转
- 实现思路
- 对输入字符串进行倒序遍历
- 将末尾的字符逐个压入新字符串的末尾
- 返回新的字符串
#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;
}
复杂度分析
- 时间复杂度:,遍历字符串的时间代价
- 空间复杂度:,引入额外的字符串,和原字符串的长度相同