题目描述
写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。
输入描述: 输入N个字符
输出描述: 输出该字符串反转后的字符串
示例
输入 abcd
输出 dcba
解题思路
本题很简单,我提供两种解题思路
- 只要从中间隔开,交换字符串的首尾字符即可。
当前的首尾字符可通过s[i]
和s[s.size()-1-i]
确定。 - 直接用reverse()函数即可得到翻转
完整代码
//首尾依次交换
#include <iostream>
#include <string>
using namespace std;
string Reverse(string s)
{
for (int i = 0; i < s.size() / 2; i++)
swap(s[i], s[s.size() - 1 - i]);
return s;
}
int main()
{
string s;
while (cin >> s)
cout << Reverse(s) << endl;
system("pause");
return 0;
}
//应用reverse()函数
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
string s;
while (cin >> s)
{
reverse(s.begin(), s.end());
cout << s << endl;
}
system("pause");
return 0;
}
原题链接
https://www.nowcoder.com/practice/e45e078701ab4e4cb49393ae30f1bb04?tpId=37&&tqId=21235&rp=1&ru=/activity/oj&qru=/ta/huawei/question-ranking
这道题很简单,就不多赘述了。相同类型的题之前也有一道:倒置字符串 ——因为在这道题中,字符之间有空格,所以需要逆转两次得到正确的答案。有兴趣的可以参考【牛客网】倒置字符串
记得关注博主哟~