File tree Expand file tree Collapse file tree 6 files changed +200
-2
lines changed
solution/1700-1799/1734.Decode XORed Permutation Expand file tree Collapse file tree 6 files changed +200
-2
lines changed Original file line number Diff line number Diff line change 48
48
<!-- 这里可写当前语言的特殊实现逻辑 -->
49
49
50
50
``` 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 ]
52
63
```
53
64
54
65
### ** Java**
55
66
56
67
<!-- 这里可写当前语言的特殊实现逻辑 -->
57
68
58
69
``` 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
+ ```
59
110
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
+ }
60
130
```
61
131
62
132
### ** ...**
Original file line number Diff line number Diff line change 42
42
### ** Python3**
43
43
44
44
``` 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 ]
46
57
```
47
58
48
59
### ** Java**
49
60
50
61
``` 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
+ ```
51
100
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
+ }
52
120
```
53
121
54
122
### ** ...**
Original file line number Diff line number Diff line change
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
+ };
Original file line number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change
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 ]
You can’t perform that action at this time.
0 commit comments