import java.util.LinkedList;
import java.util.Queue;
import java.util.Stack;
/*
* Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.
For example,
"A man, a plan, a canal: Panama" is a palindrome.
"race a car" is not a palindrome.
* */
public class Solution {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(Solution.isPalindrome("race a car"));
}
public static boolean isPalindrome(String s) {
if(s == null&&s.length() == 0)
return true;
String slow = s.toLowerCase();
char[] cc = slow.toCharArray();
Stack<Character> stack = new Stack<>();
Queue<Character> queue = new LinkedList<>();
for(int i = 0 ; i < cc.length;i++)
{
if((cc[i]>='0'&&cc[i]<='9')||(cc[i]>='a'&&cc[i]<='z'))
{
stack.push(cc[i]);
queue.add(cc[i]);
}
}
boolean flag = true;
while(!stack.isEmpty())
{
if(stack.pop()!=queue.remove())
{
flag = false;
break;
}
}
return flag;
}
}
Valid Palindrome
最新推荐文章于 2019-05-20 11:02:21 发布