1. 程式人生 > 其它 >《九日集訓》第十五輪 (第五講) 排序

《九日集訓》第十五輪 (第五講) 排序

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; }