《九日集訓》第十五輪 (第五講) 排序
阿新 • • 發佈:2022-04-01
125. 驗證迴文串
難度簡單給定一個字串,驗證它是否是迴文串,只考慮字母和數字字元,可以忽略字母的大小寫。
說明:本題中,我們將空字串定義為有效的迴文串。
示例 1:
輸入: "A man, a plan, a canal: Panama" 輸出: true 解釋:"amanaplanacanalpanama" 是迴文串
示例 2:
輸入: "race a car" 輸出: false 解釋:"raceacar" 不是迴文串
提示:
1 <= s.length <= 2 * 105
- 字串
s
由 ASCII 字元組成
解法:
先根據題意,只要字母和數字。把大寫轉小寫,字母,數字存入新的字元陣列中。
再使用雙指標挨個比較。
bool isPalindrome(char * s){ char str[200000]; int i=0; int len =strlen(s); int j = 0; int l = 0; int r = 0;for(i=0; i<len; i++){ if(s[i] >= 65 && s[i]<=90){ //大寫字母範圍65~90 str[j++] = s[i] + 32; }else if(s[i] >= 48 && s[i] <= 57){ str[j++] = s[i]; }else if(s[i] >= 97 && s[i] <= 122){ //小寫字母範圍97~122 str[j++] = s[i]; }else{ continue; } }
l = 0; r = j-1; while(l<r){ if(str[l] == str[r]){ l++; r--; }else{ return false; } } return true; }