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。
查看14道真题和解析