Bit Operation, Add Binary and La

2018-04-26  本文已影响7人  程序猪小羊
0111 1111 1111 1111 1111 1111 1111 1111 // num
1000 0000 0000 0000 0000 0000 0000 0000 // ~num
0100 0000 0000 0000 0000 0000 0000 0000 // Integer.highestOneBit(num)
1000 0000 0000 0000 0000 0000 0000 0000 // Integer.highestOneBit(num) << 1
0111 1111 1111 1111 1111 1111 1111 1111 // Integer.highestOneBit(num) << 1 - 1
至此,我们知道后面那些位,都是需要flip的。

Leetcode 476. Number Complement

思路

那么如何找到Mask呢?
见开头代码块。

对其后位置的各位进行取反。

Java运算符优先级整理
/*注意 位运算 优先级在 算术运算 之后 */

括号(1级): () .(取成员变量)
单目(2级)(从右向左) ! +(正)-(负)~(按位取反) ++ --
算术(3-5级) * / %---->>>> + ----->>>><< >> >>>
关系(6-7级) < <= > >= instanceof---->>>> == !=
位(8-10级)(特殊的单目) & ---->>>>^ ---->>>> |
逻辑(11-12级) && ---->>>> ||
条件(13级) ? :
赋值(14级)(从右向左) = += -+ *= /= %= &= |= ^= ~= <<= >>= >>>=

小括號(parentheses)
大括號(curly brackets)

67. Add Binary

How to encode binary and do computation?
???
补齐位数后,每位相加。
用一个int记录 - 进位。

注意:
”String“

58. Length of Last Word

Thoughts:
First, separate the last world
Second, count its length.
计算最后一个词——从后往前scan!:
后面为空:一直往前,直到不为空;
记录最后一个词;
遇到空格停止。

    if(s.isEmpty()) return 0;
    int lastIndex = s.length()-1, leftIndex = 0; 
    while(lastIndex>0 && s.charAt(lastIndex) == ' ') lastIndex--;  // trim
    leftIndex = lastIndex;
    while(leftIndex>=0 && s.charAt(leftIndex) != ' ') leftIndex--; // find the penultimate index of space in s. 
    return lastIndex - leftIndex;

For the first part,
SAVE chars until you encounter the space -
move out all;
SAVE.

end

s.trim();

length property.
int [] ar; ar.length;
String st; st.length();

上一篇下一篇

猜你喜欢

热点阅读