-
简单题现在目标25分钟吧;中等题一个小时吧。
-
重点:input: 无符号整型,output: 无符号整型。
-
颠倒:是指首位颠倒,而不是01颠倒
-
stoul(str, nullptr, 2) 第三个参数的作用是指明当前str是什么进制的。如果是00开头,就必须写清楚,否则该函数无法区分是10进制,还是2进制.
.
class Solution {
public:
uint32_t reverseBits(uint32_t n) {
bitset<32> binaryN = n;
string strOfbinaryN = binaryN.to_string();
// 使用bitset存储二进制, 并进行翻转
reverse(strOfbinaryN.begin(), strOfbinaryN.end());
// stoul可以转换32位的字符串,无压力
return stoul(strOfbinaryN, nullptr, 2);
}
};
扩展练习:
【举一反三】一文带你刷三道翻转数字的题目,单百。
- https://leetcode-cn.com/problems/reverse-bits/solution/ju-yi-fan-san-yi-wen-dai-ni-shua-san-dao-ubat/