标签:简单 字符串 return ret turn 递归 查找 can amp
回文是一种字符串,它正着读和反着读都是一样的。比如level,eye都是回文。用迭代的方法可以很快地判断一个字符串是否为回文。用递归的方法如何来实现呢?
首先我们要考虑使用递归的两个条件:
#include"iostream" #include<stdio.h> #include"string" #define MAX 100 using namespace std; /*这是错误的,传进str的整个string则没有办法化解成小问题,这里需要指 之后强行把string str 改为指针也不对,会出现异常错误。 int per(int n ,string str){ if (n == 1 && n == 0) return 1; else { per(n - 2, str[1]); } } */ int per(int n, char *str) { if (n == 1 || n == 0) return 1; else { if (str[0] == str[n - 1]) per(n - 2, &str[1]); else return -1; } } int main() { int len; char str[MAX]; while(1) { printf("please enter the word :"); //os<<s scanf("%s", &str); len = (int)strlen(str); int result = per(len, str); if (result == 1) printf("true\n"); else printf("fault\n"); } system("pause "); }
标签:简单 字符串 return ret turn 递归 查找 can amp
原文地址:http://www.cnblogs.com/xiaochige/p/7940285.html