题解 | #回文数字#

回文数字

http://www.nowcoder.com/practice/35b8166c135448c5a5ba2cff8d430c32

import java.util.*;


public class Solution {
    /**
     * 
     * @param x int整型 
     * @return bool布尔型
     */
    public boolean isPalindrome (int x) {
        // write code here
        if (x < 0) { // 如果 x 是负数,那么 x 一定不是回文数字
            return false;
        }
        if (x >= 0 && x <= 9) { // 如果 x 在 [0, 9] 这个范围内的数字,那么 x 一定是回文数字
            return true;
        }
        boolean rs = true; // 定义一个 boolean 类型的变量,用于存放最终的返回结果(默认是 true)
        Queue<Integer> queue = new LinkedList<>();
        Stack<Integer> stack = new Stack<>();
        int tmp = x; // 定义一个整型变量,用于存放一个 x 的副本
        
        while (x != 0) {
            queue.add(x % 10); // 取余数,入队列
            stack.push(x % 10); // 取余数,压栈
            x = x / 10;
        }
        // 此时,队列当中存放的数据,是 x 的反向遍历的结果;栈当中存放的数据,是 x 的正向遍历的结果
        // 定义两个整型变量,用于临时存放从队列和栈中弹出的数据
        int t1 = 0;
        int t2 = 0;
        while (!queue.isEmpty() && !stack.isEmpty()) {
            t1 = queue.poll();
            t2 = stack.pop();
            if (t1 != t2) { // 如果 t1 不等于 t2,那么证明数字 x 不是回文数字
                rs = false;
                break;
            }
        }
        
        // 返回最终的结果
        return rs;
    }
}
全部评论

相关推荐

霁华Tel:秋招结束了,好累。我自编了一篇对话,语言别人看不懂,我觉得有某种力量在控制我的身体,我明明觉得有些东西就在眼前,但身边的人却说啥也没有,有神秘人通过电视,手机等在暗暗的给我发信号,我有时候会突然觉得身体的某一部分不属于我了。面对不同的人或场合,我表现出不一样的自己,以至于都不知道自己到底是什么样子的人。我觉得我已经做的很好,不需要其他人的建议和批评,我有些时候难以控制的兴奋,但是呼吸都让人开心。
点赞 评论 收藏
分享
有趣的牛油果开挂了:最近这个阶段收到些杂七杂八的短信是真的烦
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务