leetcode Valid Palindrome

回文校验题目:https://leetcode.com/problems/valid-palindrome/

解题思路:

1.把字符串全部小写

2.使用两个指针,一个指向字符串的头,一个值向字符串的尾,如果不是字母,头指针向后移动,尾指针向后移动,

public static void main(String[] args) {
		String str="A man, a plan, a canal: Panama";
		boolean palindrome = isPalindrome(str);
		System.out.println(palindrome);
	}
	public  static boolean isPalindrome(String s) {
		s = s.toLowerCase();
		int i=0;
		int j=s.length()-1;
		char c;
		char d;
		while(i<j){
			c = s.charAt(i);
			d = s.charAt(j);
			if(!isNumbersAndLetters(c)){
				i++;
			}
			if(!isNumbersAndLetters(d)){
				j--;
			}
			if(isNumbersAndLetters(c)&&isNumbersAndLetters(d)){
				if(c==d){
					i++;
					j--;
				}else{
					return false;
				}
			}
		}
		return true;
	}
	public static  boolean isNumbersAndLetters(char c){
		if((c>='a' && c<='z')|| (c>='A' && c<='Z') || (c>='0' &&c<='9')){
			return true;
		}
		return false;
	}

猜你喜欢

转载自blog.csdn.net/u011243684/article/details/84834220