判断一个字符串是否为回文的递归算法
//编译器:GCC 4.2.1 运行环境:Redflag Linux 6.0 Desktop
//如果在VC++下编译可能要加入string和algorithm两个头文件并修改函数返回值类型
#include<iostream>
using namespace std;
int Ifhw(string s,string q,int &i)
{
if(s[i]==q[i]&&i!=-1) Ifhw(s,q,--i);
}
int main()
{
string s;
getline(cin,s); //取s直到遇见回车符
string q=s; //定义一个与s字面量相等的对象q
reverse(q.begin(),q.end()); //将q倒序
int i=q.size()-1; //.size是得到字符串长度的函数
Ifhw(s,q,i);
if(i==-1) cout<<"是回文字符串"<<endl; //如果i值能减到-1说明s与q的每个字符都匹配
else cout<<"不是回文字符串"<<endl;
}
更多原创技术内容,可以通过公众号「闷骚的程序员」订阅: