回文字串判斷 遞迴實現

2022-03-27 12:25:49 字數 1438 閱讀 8672

所謂回文字串,就是乙個字串,從左到右讀和從右到左讀是完全一樣的。比如"level" 、 「aaabbaaa」

題目:判斷乙個字串是否為回文

解法:遞迴

遞迴的作用在於把問題的規模不斷縮少,直到問題縮少到能簡單地解決

問:如何縮少問題規模?

答:通過觀察可以知道,乙個回文字串其中內部也是回文。所以,我們只需要以去掉兩端的字元的形式一層層檢查,每一次的檢查都去掉了兩個字元,這樣就達到了縮少問題規模的目的。

新問題與原問題有著相同的形式

當去掉兩端字元後的字串,其產生的新問題同樣是檢查這個字串是否回文。

遞迴的結束需要簡單情景

1. 字串長度可能會奇數或偶數:

2. 如果檢查到兩端兩個字元不相同。則說明此字串不是回文,直接返回0,不需要繼續檢查

1 #include 2 #include 34

using

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 34

void 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...