Java 题解 | #牛的回文编号III#

牛的回文编号III

https://www.nowcoder.com/practice/6af8b6e39b004329a48cc2cd823e5b30

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param x int整型
     * @return bool布尔型
     */
    public boolean isPalindromeNumberIII (int x) {
        // write code here
        int bitCount = 32;

        for (int i = 0; i < bitCount / 2; i++) {
            int leftBit = (x >> (bitCount - 1 - i)) & 1;
            int rightBit = (x >> i) & 1;

            if (leftBit != rightBit) {
                return false;
            }
        }

        return true;
    }
}

Java代码

考察的知识点是位运算和回文数的判断。

代码中的方法isPalindromeNumberIII接收一个整数x作为参数,返回一个布尔值。

确定整数的位数为32位(32-bit有符号整数)。

使用一个循环来逐位判断是否为回文数。循环从最高位开始到中间位置(即bitCount / 2)。在每一次循环中,通过右移操作和与运算获取最高位和最低位的值。

通过右移操作(x >> (bitCount - 1 - i))和与运算& 1,可以得到第i位的值。

判断最高位和最低位的值是否相等。如果不相等,则说明整数的二进制表示不是回文数,直接返回false。如果循环结束后都没有返回false,则说明所有位上的值都相等,整数的二进制表示是回文数,返回true。

全部评论

相关推荐

牛客83265014...:完了,连现在都没开始面,13号投的是不是晚了
秋招的第一个offer,...
点赞 评论 收藏
分享
牛客37185681...:马德,我感觉这是我面过最恶心的公司,一面是两个女hr,说什么实习前几个月属于试用期,试用期过了才能转成正式实习生,我***笑了,问待遇就是不说,问能不能接受全栈,沙币公司
如果可以选,你最想去哪家...
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务