LeetCode第125題

給定一個字符串,驗證它是否是迴文串,只考慮字母和數字字符,可以忽略字母的大小寫。

說明:本題中,我們將空字符串定義爲有效的迴文串。

示例 1:

輸入: "A man, a plan, a canal: Panama"
輸出: true

示例 2:

輸入: "race a car"
輸出: false

思想:可以使用兩個指針,一個指針從第一個元素開始,一個指針從最後一個元素開始,期間進行判斷,如果這兩個指針所指向的元素不是數字字符或字母,則進行相應的++或--,如果所比較的兩個字符相等的話,也進行相應的++或--,最後字符數組比較完,如果全部相等,則返回true,否則返回false。

public static boolean isPalindrome(String s){
		char[] ss=s.toCharArray();
		int i=0;
		int j=ss.length-1;
		while(i<j){
			if(!Character.isLetterOrDigit(ss[i])){
				i++;	
			}
			else if(!Character.isLetterOrDigit(ss[j])){
				j--;
			}
			else if(Character.toLowerCase(ss[i])==Character.toLowerCase(ss[j])){
				i++;
				j--;
			}
			else{
				return false;
			}
		}
		return true;
	}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章