题目描述
给定一个字符串,输出它的反转字符串。
例如"abcd"的反转字符串是"dcba","abcde"的反转字符串是"edcba"。
请使用递归实现。
输入描述
一个仅由小写字母组成的、长度不小于1且不超过100的字符串。
输出描述
给定字符串的反转字符串。
样例1
输入
abcd
输出
dcba
代码:
法一:
#include<iostream>
using namespace std;
string str;
string str1="";
string sreverse(int n){
if(n==0){
str1+=str[0];
return str1; //注意这里需要返回的是string类型
}
else return str[n]+sreverse(n-1); //字符串加法
}
int main(){
cin>>str;
cout<<sreverse(str.size()-1)<<endl;
return 0;
}
法二:
#include<iostream>
using namespace std;
string str;
string sreverse(int n){
if(n==1){
return str.substr(0,1); //substr()截取字符串
}
else return str.substr(n-1,1)+sreverse(n-1); //字符串加法
}
int main(){
cin>>str;
cout<<sreverse(str.size())<<endl;
return 0;
}