Skip to content

Commit b4ffd21

Browse files
committed
feat: add solutions to lcci problem: No.05.07
No.05.07.Exchange
1 parent 8720418 commit b4ffd21

File tree

6 files changed

+62
-14
lines changed

6 files changed

+62
-14
lines changed

lcci/05.07.Exchange/README.md

+23-4
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,9 @@
3838
<!-- 这里可写当前语言的特殊实现逻辑 -->
3939

4040
```python
41-
41+
class Solution:
42+
def exchangeBits(self, num: int) -> int:
43+
return ((num & 0x55555555) << 1) | ((num & 0xaaaaaaaa) >> 1)
4244
```
4345

4446
### **Java**
@@ -48,9 +50,7 @@
4850
```java
4951
class Solution {
5052
public int exchangeBits(int num) {
51-
int t1 = num >> 1;
52-
int t2 = num << 1;
53-
return t1 & 0x55555555 | t2 & 0xaaaaaaaa;
53+
return ((num & 0x55555555) << 1) | ((num & 0xaaaaaaaa)) >> 1;
5454
}
5555
}
5656
```
@@ -76,6 +76,25 @@ impl Solution {
7676
}
7777
```
7878

79+
### **C++**
80+
81+
```cpp
82+
class Solution {
83+
public:
84+
int exchangeBits(int num) {
85+
return ((num & 0x55555555) << 1) | ((num & 0xaaaaaaaa)) >> 1;
86+
}
87+
};
88+
```
89+
90+
### **Go**
91+
92+
```go
93+
func exchangeBits(num int) int {
94+
return ((num & 0x55555555) << 1) | (num&0xaaaaaaaa)>>1
95+
}
96+
```
97+
7998
### **...**
8099

81100
```

lcci/05.07.Exchange/README_EN.md

+23-4
Original file line numberDiff line numberDiff line change
@@ -40,17 +40,17 @@
4040
### **Python3**
4141

4242
```python
43-
43+
class Solution:
44+
def exchangeBits(self, num: int) -> int:
45+
return ((num & 0x55555555) << 1) | ((num & 0xaaaaaaaa) >> 1)
4446
```
4547

4648
### **Java**
4749

4850
```java
4951
class Solution {
5052
public int exchangeBits(int num) {
51-
int t1 = num >> 1;
52-
int t2 = num << 1;
53-
return t1 & 0x55555555 | t2 & 0xaaaaaaaa;
53+
return ((num & 0x55555555) << 1) | ((num & 0xaaaaaaaa)) >> 1;
5454
}
5555
}
5656
```
@@ -76,6 +76,25 @@ impl Solution {
7676
}
7777
```
7878

79+
### **C++**
80+
81+
```cpp
82+
class Solution {
83+
public:
84+
int exchangeBits(int num) {
85+
return ((num & 0x55555555) << 1) | ((num & 0xaaaaaaaa)) >> 1;
86+
}
87+
};
88+
```
89+
90+
### **Go**
91+
92+
```go
93+
func exchangeBits(num int) int {
94+
return ((num & 0x55555555) << 1) | (num&0xaaaaaaaa)>>1
95+
}
96+
```
97+
7998
### **...**
8099

81100
```

lcci/05.07.Exchange/Solution.cpp

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
class Solution {
2+
public:
3+
int exchangeBits(int num) {
4+
return ((num & 0x55555555) << 1) | ((num & 0xaaaaaaaa)) >> 1;
5+
}
6+
};

lcci/05.07.Exchange/Solution.go

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
func exchangeBits(num int) int {
2+
return ((num & 0x55555555) << 1) | (num&0xaaaaaaaa)>>1
3+
}

lcci/05.07.Exchange/Solution.java

+4-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
class Solution {
2-
public int exchangeBits(int num) {
3-
int t1 = num >> 1;
4-
int t2 = num << 1;
5-
return t1 & 0x55555555 | t2 & 0xaaaaaaaa;
6-
}
1+
class Solution {
2+
public int exchangeBits(int num) {
3+
return ((num & 0x55555555) << 1) | ((num & 0xaaaaaaaa)) >> 1;
4+
}
75
}

lcci/05.07.Exchange/Solution.py

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
class Solution:
2+
def exchangeBits(self, num: int) -> int:
3+
return ((num & 0x55555555) << 1) | ((num & 0xaaaaaaaa) >> 1)

0 commit comments

Comments
 (0)