對於字母或者數字型別均可以(可以對兩者進行相互轉化)型別的用第二種(棧和佇列)對於數字用第一種演算法
提前說一下寫這個題的小背景,在學校訓練了幾天在等待開學的過程中實在是太過於無聊就回顧一下以前學過的基礎和一些演算法吧!
簡單說一下回文串:
回文串是說正著讀或者反著讀都一樣的字串,或者為乙個整數(這個無所謂可以根據題目自行修改下面的模板),簡單思想就是對所求數反著存到另乙個數,判斷兩個數是否相等,相等就輸出過程中的數不是的話本來的數加上反著存的數繼續往下判斷就好;
下面是寫的乙個簡單**:
#include
intget_f
(int k)
return m==k?
1:m;
}int
main()
}for
(j=0
; j)printf
("%d "
, a[j]);
printf
("\n");
}return0;
}
下面是棧的方式判斷:
核心思想就是將前一部分存入另乙個字串然後進行比較判斷;看**中間的解釋應該可以看懂!
#include
#include
intmain()
if(top==0)
printf
("yes\n");
else
printf
("no\n");
}return0;
}
判斷回文串,判斷回文數,最長回文串,回文串的個數
判斷乙個字串是否是回文串,首先了解下它的定義 回文串 是乙個正讀和反讀都一樣的字串,比如 level 或者 noon 等等就是回文串。所以判斷是否是回文串,判斷這個字串是否對稱即可。從而用兩個指標同時向中間掃瞄即可判斷。判斷字串是否是回文串,即判斷是否對稱。兩邊指標同時向中間掃瞄,判斷是否相等,不等...
判斷回文串
回文串 level abba 非回文串 hevel aabb 方法解析 1.首先得知道字元陣列的長度 要麼使用現成的計算字元陣列長度的函式,要麼自己寫乙個遍歷區數,都得花費o n 時間,暫時沒有能夠節省這部分時間的方法 2.然後就從中間的字元開始,往兩邊走,兩邊各取乙個元素比較,若不相等則跳出,得到...
回文串判斷
方法一 使用棧的性質。將字串的一半放入棧,再利用棧的先進後出的性質,來判斷另一半字串和棧中的元素是否相等。如下 解密回文 include include int main if len 2 0 else for i next i len 1 i top if top 0 else return 0 ...