Valid Palindrome

Valid Palindrome 

判定回文字符串

这里可以通过维护两个指针来实现,即一个从左边开始遍历,一个指针从右边开始遍历,在遍历的时候需要处理空格。

源码如下:

C++版本:

class Solution {
public:
    bool isPalindrome(string s) {        
	    int start=0, end=s.length()-1;
	    while(start<end) {
		    if (!isalnum(s[start])) 
                start++;
		    else if (!isalnum(s[end])) 
                end--;
		    else {
		    	if (tolower(s[start++])!=tolower(s[end--])) 
                    return false;
	    	}
    	}
	    return true;
    }
};
JAVA版本:

public class Solution {	
	public boolean isPalindrome(String s) {
		if (s == null) {
			return true;
		}
		
		int i = 0;
		int j = s.length() - 1;
		while (i < j) {
			if (!isAlphanumeric(s.charAt(i))) {
				i++;
				continue;
			}
			if (!isAlphanumeric(s.charAt(j))) {
				j--;
				continue;
			}
			if(Character.toLowerCase(s.charAt(i)) == Character.toLowerCase(s.charAt(j))) {
				i++;
				j--;
				continue;
			}
			return false;
		}
		return true;
	}	
	public boolean isAlphanumeric(char c) {
		if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9')) {
			return true;
		}
		return false;
	}    
	
}


猜你喜欢

转载自blog.csdn.net/good123_2014/article/details/78708063
今日推荐