《遞迴入門》之回文

2021-06-17 01:17:10 字數 1148 閱讀 8183

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

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

解法:遞迴

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

問:如何縮少問題規模?

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

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

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

遞迴的結束需要簡單情景

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

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

遞迴跳躍的信任

此題的遞迴分解比較簡單,所以對在遞迴過程中細節的實現,我們可以直接看出。但是一些較複雜的題目上,我們就沒那麼容易看出過程中細節的實現,這時候就需要我們遞迴跳躍的信任!

[cpp]view plain

copy

print?

#include 

using

namespace

std;  

intfun(

intlow, 

inthigh, 

char

*str, 

intlength)  

intmain()  

當然這題可以不用遞迴函式的,可以直接用字串陣列或者是string類來做下面寫個主要部分:int leap=0;for(int i=0;ielse leap=0;break;}if(leap==0)return 0;else return 1;

遞迴入門自學

例題 計算給定的n個數的和 分析 顯然當n 0的a 0 為所求,因此可以將前n項可以看做是前n 1 即 a 0,n 2 項的和加上第n項 int sum int a,int n 如上演算法中的sum 在進行遞迴呼叫的時對自身的呼叫最多隻會進行一次,也就是在每一層次上至多只有乙個例項,且構成乙個線性結...

C語言 遞迴入門

遞迴是什麼,遞迴就是一種解決問題的方法 程式自身呼叫自身叫做遞迴。它的核心在於 大事化小!先舉幾個例子 1.接受乙個整型值,按順序列印它的每一位。只考慮正數 如 1234 應輸出1 2 3 4 1 先討論如果不遞迴該怎樣處理,一般步驟是這樣的,先判斷這個數是幾位數,然後在記錄下這個數的每一位,最後輸...

遞迴入門 走迷宮

有乙個nm格的迷宮 表示有n行 m列 其中有可走的也有不可走的,如果用1表示可以走,0表示不可以走,檔案讀入這nm個資料和起始點 結束點 起始點和結束點都是用兩個資料來描述的,分別表示這個點的行號和列號 現在要你程式設計找出所有可行的道路,要求所走的路中沒有重複的點,走時只能是上下左右四個方向。如果...