偶遇清华大学的一道水题
题目传送门
题目描述
输入任意4个字符(如:abcd), 并按反序输出(如:dcba)
输入描述:
题目可能包含多组用例,每组用例占一行,包含4个任意的字符。
输出描述:
对于每组输入,请输出一行反序后的字符串。
具体可见样例。
示例1
输入
Upin
cvYj
WJpw
cXOA
输出
nipU
jYvc
wpJW
AOXc
这道题总的来说没有什么难度,逼近已经告诉我们字符串的长度就只有4个字节,我们直接输出就行了。下面的代码是我们最容易想到的当然也是这道题的最简单的解。
方案一:
#include<iostream>
using namespace std;
int main()
{
char str[10];
while (~scanf("%s", str))
{
for (int i = 3; i >= 0; i--)
{
printf("%c",str[i]);
}
printf("\n");
}
return 0;
}
当然我们这里也可以用string的迭代器来处理这道题
方案二
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str;
while (cin>>str)
{
//创建一个string的迭代器
string::iterator iter = str.end();
while (iter != str.begin())
{
iter--;
cout << *iter;
}
cout << endl;
}
return 0;
}
最后我们可以用C++ algorithm 类里面的一个库函数来处理这个问题
方案三:
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
string str;
while (cin>>str)
{
//颠倒对应的地址区域内的成员的位置
reverse(str.begin(), str.end());
cout << str << endl;
}
return 0;
}
此时再看这篇博客的你,对此还有什么好的方法吗?交流一哈!