problem description
「回文串」是乙個正讀和反讀都一樣的字串,比如「level」或者「noon」等等就是回文串。
請寫乙個程式判斷讀入的字串是否是「回文」。
input
輸入包含多個測試例項,輸入資料的第一行是乙個正整數n,表示測試例項的個數,後面緊跟著是n個字串。
output
如果乙個字串是回文串,則輸出"yes",否則輸出"no".
sample input
4level
abcde
noon
haha
sample output
yesno
yesno
解題思路
常規思路:用乙個迴圈的兩個變數分別指向字串的最前端和最末端的字母,分別比較,如果有一對不相等的就可以判斷不是回文串。
長度要分奇偶,如果長度為奇數,則最中間的乙個字母是不用比較的。
簡易方法:用string類的reverse方法將原字串反轉,然後將原字串和反轉後的字串比較,如果仍相等就是乙個回文串。
string類可以用「==」直接比較!
ac**如下:
#include .h>
using namespace std;
intmain()
}
判斷回文串,判斷回文數,最長回文串,回文串的個數
判斷乙個字串是否是回文串,首先了解下它的定義 回文串 是乙個正讀和反讀都一樣的字串,比如 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 ...