##給定一個字符串,驗證它是不是迴文串,只考慮字母和數字字符,能夠忽略字母的大小寫。java
說明:本題中,咱們將空字符串定義爲有效的迴文串。app
示例 1:函數
輸入: "A man, a plan, a canal: Panama" 輸出: trueui
示例 2:spa
輸入: "race a car" 輸出: falsecode
##Java版blog
class Solution { public boolean isPalindrome(String s) { s = s.toLowerCase(); //所有轉換爲小寫 // 使用String 拼接,若是單詞太多的話,會提示時間超時,使用StringBuilder就不會。 StringBuilder builder = new StringBuilder(); int i,len = s.length(); //變成只有小寫字母和數字的字符串 for(i=0;i<len;i++) { char c = s.charAt(i); if((c>='0' && c<='9') || (c>='a' && c<='z')) { builder.append(c); } } return builder.toString().equals(builder.reverse().toString()); } }
##C語言版字符串
bool isPalindrome(char* s) { int i,k=0,len =strlen(s); char *ss = (char *)malloc(sizeof(char)*len); //拼接一個只有小寫字母和數字的字符串 for(i=0;i<len;i++) { if((s[i]>='0' && s[i]<='9') || (tolower(s[i])>='a' && tolower(s[i])<='z' )) { ss[k++]=tolower(s[i]); } } //判斷是否迴文 for(i=0;i<k/2;i++) { if(ss[i]!=ss[k-i-1]) { return false; } } return true; }
##運行結果 io