public class Solution {
public boolean isPalindrome(String s) {
boolean res = true;
Stack<Character> stack = new Stack<>();
Queue<Character> queue = new LinkedList<>();
s = s.toLowerCase();//先把字母都转换为小写
for(int i = 0; i < s.length(); i++){//空串算作回文串,并且根据例子,大小写这里视为是相同的
//判断是否是回文的用栈和队列,从两端依次判断是否相同,是个方法
if((s.charAt(i) >= 'a' && s.charAt(i) <= 'z')
||(s.charAt(i) >= 'A' && s.charAt(i) <= 'Z')
||(s.charAt(i) >= '0' && s.charAt(i) <= '9')){
stack.push(s.charAt(i));
queue.offer(s.charAt(i));
}
}
while(!stack.isEmpty() && !queue.isEmpty()){
if(stack.pop() != queue.poll()){
res = false;
}
}
return res;
}
}
leetcode [Valid Palindrome]//待整理多种解法
最新推荐文章于 2021-03-23 14:15:59 发布