驗證回文串

2021-09-28 21:25:08 字數 984 閱讀 6585

示例 1:

輸入: "a man, a plan, a canal: panama"

輸出: true

示例 2:

輸入: "race a car"

輸出: false

大致思路就是把字串的第乙個字母字元和最後乙個字母字元作比較,符合則雙方向中間移動,乙個比較,有不符合的則不是回文串。這裡遇見特殊字元(比如逗號冒號)直接再往後走一步,遇見空格也是,還有大小寫也是不區分的。可以借助函式來實現這些功能,簡單介紹一哈:

函式 int ispunct(int c)檢查所傳的字元是否是標點符號字元,(c庫)標頭檔案,如果 c 是乙個標點符號字元,則該函式返回非零值(true),否則返回 0(false)。

**函式int isspace ( int c )**檢查乙個字串是否為空白字元。(c庫)標頭檔案,返回值為非零(真)表示c是空白符,返回值為零(假)表示c不是空白符。

**函式int tolower ( int c )**用來將大寫字母轉換為小寫字母。如果轉換成功,那麼返回與 c 對應的小寫字母;如果轉換失敗,那麼直接返回 c(值未變)。注意,返回值為 int 型別,你可能需要隱式或者顯式地將它轉換為 char 型別。與之對應是函式int toupper(int c)用來將小寫字母轉換為大寫字母。如果轉換成功,那麼返回與 c 對應的大寫字母;如果轉換失敗,那麼直接返回 c(值未變)。

直接上**:

bool ispalindrome

(string s)if(

ispunct

(s[j])||

isspace

(s[j]))

if(tolower

(s[i])==

tolower

(s[j]))

else

return false;

}return i>=j?true:false;

}

驗證回文串

給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。示例 1 輸入 a man,a plan,a canal panama 輸出 true示例 2 輸入 race a car 輸出 false個人ac答案 我發現我現在越來越謹慎...

驗證回文串

驗證回文串 題幹 給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。示例 1 輸入 a man,a plan,a canal panama 輸出 true示例 2 輸入 race a car 輸出 false解題思路分析以及 ...

驗證回文串

驗證回文串 題目描述 給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。示例 1 輸入 a man,a plan,a canal panama 輸出 true 示例 2 輸入 race a car 輸出 false 分析 最簡...