Skip to content

Commit 7e62be4

Browse files
committed
feat: add solutions to lc problem: No.1734
No.1734.Decode XORed Permutation
1 parent 77ab50b commit 7e62be4

File tree

6 files changed

+200
-2
lines changed

6 files changed

+200
-2
lines changed

solution/1700-1799/1734.Decode XORed Permutation/README.md

Lines changed: 71 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,85 @@
4848
<!-- 这里可写当前语言的特殊实现逻辑 -->
4949

5050
```python
51-
51+
class Solution:
52+
def decode(self, encoded: List[int]) -> List[int]:
53+
n = len(encoded) + 1
54+
a = b = 0
55+
for i in range(0, n - 1, 2):
56+
a ^= encoded[i]
57+
for i in range(n + 1):
58+
b ^= i
59+
ans = [a ^ b]
60+
for e in encoded[::-1]:
61+
ans.append(ans[-1] ^ e)
62+
return ans[::-1]
5263
```
5364

5465
### **Java**
5566

5667
<!-- 这里可写当前语言的特殊实现逻辑 -->
5768

5869
```java
70+
class Solution {
71+
72+
public int[] decode(int[] encoded) {
73+
int n = encoded.length + 1;
74+
int[] ans = new int[n];
75+
int a = 0;
76+
int b = 0;
77+
for (int i = 0; i < n - 1; i += 2) {
78+
a ^= encoded[i];
79+
}
80+
for (int i = 0; i < n + 1; ++i) {
81+
b ^= i;
82+
}
83+
ans[n - 1] = a ^ b;
84+
for (int i = n - 2; i >= 0; --i) {
85+
ans[i] = ans[i + 1] ^ encoded[i];
86+
}
87+
return ans;
88+
}
89+
}
90+
91+
```
92+
93+
### **C++**
94+
95+
```cpp
96+
class Solution {
97+
public:
98+
vector<int> decode(vector<int>& encoded) {
99+
int n = encoded.size() + 1;
100+
vector<int> ans(n);
101+
int a = 0, b = 0;
102+
for (int i = 0; i < n - 1; i += 2) a ^= encoded[i];
103+
for (int i = 0; i < n + 1; ++i) b ^= i;
104+
ans[n - 1] = a ^ b;
105+
for (int i = n - 2; i >= 0; --i) ans[i] = ans[i + 1] ^ encoded[i];
106+
return ans;
107+
}
108+
};
109+
```
59110
111+
### **Go**
112+
113+
```go
114+
func decode(encoded []int) []int {
115+
n := len(encoded) + 1
116+
ans := make([]int, n)
117+
a, b := 0, 0
118+
for i := 0; i < n-1; i += 2 {
119+
a ^= encoded[i]
120+
}
121+
for i := 0; i < n+1; i++ {
122+
b ^= i
123+
}
124+
ans[n-1] = a ^ b
125+
for i := n - 2; i >= 0; i-- {
126+
ans[i] = ans[i+1] ^ encoded[i]
127+
}
128+
return ans
129+
}
60130
```
61131

62132
### **...**

solution/1700-1799/1734.Decode XORed Permutation/README_EN.md

Lines changed: 69 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,81 @@
4242
### **Python3**
4343

4444
```python
45-
45+
class Solution:
46+
def decode(self, encoded: List[int]) -> List[int]:
47+
n = len(encoded) + 1
48+
a = b = 0
49+
for i in range(0, n - 1, 2):
50+
a ^= encoded[i]
51+
for i in range(n + 1):
52+
b ^= i
53+
ans = [a ^ b]
54+
for e in encoded[::-1]:
55+
ans.append(ans[-1] ^ e)
56+
return ans[::-1]
4657
```
4758

4859
### **Java**
4960

5061
```java
62+
class Solution {
63+
public int[] decode(int[] encoded) {
64+
int n = encoded.length + 1;
65+
int[] ans = new int[n];
66+
int a = 0;
67+
int b = 0;
68+
for (int i = 0; i < n - 1; i += 2) {
69+
a ^= encoded[i];
70+
}
71+
for (int i = 0; i < n + 1; ++i) {
72+
b ^= i;
73+
}
74+
ans[n - 1] = a ^ b;
75+
for (int i = n - 2; i >= 0; --i) {
76+
ans[i] = ans[i + 1] ^ encoded[i];
77+
}
78+
return ans;
79+
}
80+
}
81+
```
82+
83+
### **C++**
84+
85+
```cpp
86+
class Solution {
87+
public:
88+
vector<int> decode(vector<int>& encoded) {
89+
int n = encoded.size() + 1;
90+
vector<int> ans(n);
91+
int a = 0, b = 0;
92+
for (int i = 0; i < n - 1; i += 2) a ^= encoded[i];
93+
for (int i = 0; i < n + 1; ++i) b ^= i;
94+
ans[n - 1] = a ^ b;
95+
for (int i = n - 2; i >= 0; --i) ans[i] = ans[i + 1] ^ encoded[i];
96+
return ans;
97+
}
98+
};
99+
```
51100
101+
### **Go**
102+
103+
```go
104+
func decode(encoded []int) []int {
105+
n := len(encoded) + 1
106+
ans := make([]int, n)
107+
a, b := 0, 0
108+
for i := 0; i < n-1; i += 2 {
109+
a ^= encoded[i]
110+
}
111+
for i := 0; i < n+1; i++ {
112+
b ^= i
113+
}
114+
ans[n-1] = a ^ b
115+
for i := n - 2; i >= 0; i-- {
116+
ans[i] = ans[i+1] ^ encoded[i]
117+
}
118+
return ans
119+
}
52120
```
53121

54122
### **...**
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
class Solution {
2+
public:
3+
vector<int> decode(vector<int>& encoded) {
4+
int n = encoded.size() + 1;
5+
vector<int> ans(n);
6+
int a = 0, b = 0;
7+
for (int i = 0; i < n - 1; i += 2) a ^= encoded[i];
8+
for (int i = 0; i < n + 1; ++i) b ^= i;
9+
ans[n - 1] = a ^ b;
10+
for (int i = n - 2; i >= 0; --i) ans[i] = ans[i + 1] ^ encoded[i];
11+
return ans;
12+
}
13+
};
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
func decode(encoded []int) []int {
2+
n := len(encoded) + 1
3+
ans := make([]int, n)
4+
a, b := 0, 0
5+
for i := 0; i < n-1; i += 2 {
6+
a ^= encoded[i]
7+
}
8+
for i := 0; i < n+1; i++ {
9+
b ^= i
10+
}
11+
ans[n-1] = a ^ b
12+
for i := n - 2; i >= 0; i-- {
13+
ans[i] = ans[i+1] ^ encoded[i]
14+
}
15+
return ans
16+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
class Solution {
2+
public int[] decode(int[] encoded) {
3+
int n = encoded.length + 1;
4+
int[] ans = new int[n];
5+
int a = 0;
6+
int b = 0;
7+
for (int i = 0; i < n - 1; i += 2) {
8+
a ^= encoded[i];
9+
}
10+
for (int i = 0; i < n + 1; ++i) {
11+
b ^= i;
12+
}
13+
ans[n - 1] = a ^ b;
14+
for (int i = n - 2; i >= 0; --i) {
15+
ans[i] = ans[i + 1] ^ encoded[i];
16+
}
17+
return ans;
18+
}
19+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
class Solution:
2+
def decode(self, encoded: List[int]) -> List[int]:
3+
n = len(encoded) + 1
4+
a = b = 0
5+
for i in range(0, n - 1, 2):
6+
a ^= encoded[i]
7+
for i in range(n + 1):
8+
b ^= i
9+
ans = [a ^ b]
10+
for e in encoded[::-1]:
11+
ans.append(ans[-1] ^ e)
12+
return ans[::-1]

0 commit comments

Comments
 (0)