回文串判斷(string類 反轉reverse)

2021-10-24 01:21:45 字數 797 閱讀 9101

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