

#yyds干货盘点# 解决名企真题:懂二进制
source link: https://blog.51cto.com/u_15488507/5505507
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

#yyds干货盘点# 解决名企真题:懂二进制
原创1.简述:
描述世界上有10种人,一种懂二进制,一种不懂。那么你知道两个int32整数m和n的二进制表达,有多少个位(bit)不同么?
示例12.代码实现:
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param m int整型
* @param n int整型
* @return int整型
*/
public int countBitDiff (int m, int n) {
// write code here
return compareString(decimalToBinary(m), decimalToBinary(n));
}
// 自定义一个函数,用于将一个十进制整数转换为二进制
public String decimalToBinary (int num) {
StringBuffer binary = new
StringBuffer(""); // 定义一个 StringBuffer,用于存放最终返回的二进制数
while (num != 0) {
binary.append(num % 2);
num /= 2;
}
binary.reverse();
return new String(binary);
}
public int compareString (String str1, String str2) {
int len1 = str1.length(); // 获取 str1 的长度
int len2 = str2.length(); // 获取 str2 的长度
int ml = Math.max(len1, len2); // 获取 str1 和 str2 中长度最大的一个
while (str1.length() != ml) {
str1 = "0" + str1; // 在 str1 的头部补 0
}
while (str2.length() != ml) {
str2 = "0" + str2; // 在 str2 的头部补 0
}
int res = 0; // 定义一个整型变量,用于存放最终的返回结果
for (int i = 0; i < ml; i++) {
if (str1.charAt(i) != str2.charAt(i)) {
res++;
}
}
return res;
}
}
- 赞
- 收藏
- 评论
- 分享
- 举报
Recommend
-
4
#yyds干货盘点# 解决名企真题: 序列找数 原创 97的风 2022-06-30 10:14:...
-
7
#yyds干货盘点# 解决名企真题:扭蛋机 原创 97的风 2022-07-01 17:32:57
-
6
#yyds干货盘点# 解决名企真题:最大差值 原创 97的风 2022-07-06 11:29:4...
-
7
#yyds干货盘点# 解决名企真题:交叉线 原创 97的风 2022-07-07 09:51:21
-
8
#yyds干货盘点# 解决名企真题:火眼金睛 原创 97的风 2022-07-08 10:36:2...
-
4
#yyds干货盘点# 解决名企真题:附加题 原创 97的风 2022-07-14 09:42:01
-
5
#yyds干货盘点# 解决名企真题:循环数比较 原创 97的风 2022-07-15 09:49...
-
19
#yyds干货盘点# 名企真题专题:搬圆桌 精选 原创 97的风 2022-12-05 16:49:32
-
10
#yyds干货盘点# 名企真题专题:怪数 精选 原创 97的风 2022-12-26 15:59:54
-
10
#yyds干货盘点# 名企真题专题: 回文串 精选 原创 97的风 2022-12-31 13:04:02
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK