判斷回文串

2021-07-22 11:59:44 字數 567 閱讀 6005

回文串:level、abba

非回文串:hevel、aabb

方法解析:

1. 首先得知道字元陣列的長度(要麼使用現成的計算字元陣列長度的函式,要麼自己寫乙個遍歷區數,都得花費o(n)時間,暫時沒有能夠節省這部分時間的方法)

2. 然後就從中間的字元開始,往兩邊走,兩邊各取乙個元素比較,若不相等則跳出,得到答案是這個是非回文串,若相等則繼續往兩邊走,以此類推。

3. 可以用壓棧的形式,但其實沒啥必要,還徒增stack空間,而且一樣要事先遍歷一邊數大小。既然是char陣列,直接用下表操作即可。

c++**:

#include #include using namespace std;

//判斷字元陣列是否為回文串

bool palindrome(char *s)

else

for(;(left >= 0) && (right < len); left--, right++) //注意迴圈的邊界條件

return true;

}int main()

判斷回文串,判斷回文數,最長回文串,回文串的個數

判斷乙個字串是否是回文串,首先了解下它的定義 回文串 是乙個正讀和反讀都一樣的字串,比如 level 或者 noon 等等就是回文串。所以判斷是否是回文串,判斷這個字串是否對稱即可。從而用兩個指標同時向中間掃瞄即可判斷。判斷字串是否是回文串,即判斷是否對稱。兩邊指標同時向中間掃瞄,判斷是否相等,不等...

回文串判斷

方法一 使用棧的性質。將字串的一半放入棧,再利用棧的先進後出的性質,來判斷另一半字串和棧中的元素是否相等。如下 解密回文 include include int main if len 2 0 else for i next i len 1 i top if top 0 else return 0 ...

判斷回文串

輸入 一行以 結束的字串,字串長度不超過100 僅作為該字串結束標誌,不計入回文串判斷 樣例 leael.輸出yes或者no,如是回文輸出 yes 否則輸出 no 樣例 yes include include define yes 0 define no 1 intispalindrome char...