所謂回文字串,就是乙個字串,從左到右讀和從右到左讀是完全一樣的。比如"level" 、 「aaabbaaa」
題目:判斷乙個字串是否為回文
解法:遞迴
遞迴的作用在於把問題的規模不斷縮少,直到問題縮少到能簡單地解決
問:如何縮少問題規模?
答:通過觀察可以知道,乙個回文字串其中內部也是回文。所以,我們只需要以去掉兩端的字元的形式一層層檢查,每一次的檢查都去掉了兩個字元,這樣就達到了縮少問題規模的目的。
新問題與原問題有著相同的形式
當去掉兩端字元後的字串,其產生的新問題同樣是檢查這個字串是否回文。
遞迴的結束需要簡單情景
1. 字串長度可能會奇數或偶數:
2. 如果檢查到兩端兩個字元不相同。則說明此字串不是回文,直接返回0,不需要繼續檢查
1 #include 2 #include 34using
namespace
std;
5int strhui(int low,int high,string str,int
length);67
intmain()820
21int strhui(int low,int high,string str,int
length)
24
29if(str[low] !=str[high])
30return
0;
31return strhui(low+1,high-1,str,length-2
);32 }
程式二:
1 #include 2 #include 34void huiwen(char
str)516
}17if(flag == false
)18 printf("
%s 不是乙個回文數\n
",str);
19else
20 printf("
%s 是乙個回文數\n
",str);21}
2223
void
main()
24;
26 printf("
input a string:
");/*
提示input a string:
*/27 scanf("
%s", str); /*
scanf()函式輸入乙個字串:
*/28
huiwen(str);
29getchar();
30 }
用遞迴判斷回文字串
所謂回文字串,就是乙個字串,從左到右讀和從右到左讀是完全一樣的。比如 level aaabbaaa 題目 判斷乙個字串是否為回文 解法 遞迴 遞迴的作用在於把問題的規模不斷縮少,直到問題縮少到能簡單地解決 問 如何縮少問題規模?答 通過觀察可以知道,乙個回文字串其中內部也是回文。所以,我們只需要以去...
判斷回文字串
遞迴入門 所謂回文字串,就是乙個字串,從左到右讀和從右到左讀是完全一樣的。比如 level aaabbaaa 題目 判斷乙個字串是否為回文 解法 遞迴 遞迴的作用在於把問題的規模不斷縮少,直到問題縮少到能簡單地解決 問 如何縮少問題規模?答 通過觀察可以知道,乙個回文字串其中內部也是回文。所以,我們...
判斷回文字串
本題要求編寫函式,判斷給定的一串字元是否為 回文 所謂 回文 是指順讀和倒讀都一樣的字串。如 xyzyx 和 xyzzyx 都是回文。bool palindrome char s 函式palindrome判斷輸入字串char s是否為回文。若是則返回true,否則返回false。include in...