Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 129aa08

Browse files
committed
feat: add solutions to lc problem: No.2217
No.2217.Find Palindrome With Fixed Length
1 parent 31f97a1 commit 129aa08

File tree

11 files changed

+262
-10
lines changed

11 files changed

+262
-10
lines changed

‎lcci/08.14.Boolean Evaluation/Solution.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ def dfs(s):
88
return res
99
for k, op in enumerate(s):
1010
if op in '&^|':
11-
left, right = dfs(s[:k]), dfs(s[k + 1:])
11+
left, right = dfs(s[:k]), dfs(s[k + 1:])
1212
for i, v1 in enumerate(left):
1313
for j, v2 in enumerate(right):
1414
if op == '&':

‎solution/0000-0099/0030.Substring with Concatenation of All Words/Solution.py‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ def findSubstring(self, s: str, words: List[str]) -> List[int]:
99
l = r = i
1010
t = 0
1111
while r + sublen <= n:
12-
w = s[r: r + sublen]
12+
w = s[r: r + sublen]
1313
r += sublen
1414
if w not in cnt:
1515
l = r
@@ -19,7 +19,7 @@ def findSubstring(self, s: str, words: List[str]) -> List[int]:
1919
cnt1[w] += 1
2020
t += 1
2121
while cnt1[w] > cnt[w]:
22-
remove = s[l: l + sublen]
22+
remove = s[l: l + sublen]
2323
l += sublen
2424
cnt1[remove] -= 1
2525
t -= 1

‎solution/1900-1999/1961.Check If String Is a Prefix of Array/Solution.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@ def isPrefixString(self, s: str, words: List[str]) -> bool:
44
for i, w in enumerate(words):
55
t += len(w)
66
if len(s) == t:
7-
return ''.join(words[:i + 1]) == s
7+
return ''.join(words[:i + 1]) == s
88
return False
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
class Solution:
22
def divideString(self, s: str, k: int, fill: str) -> List[str]:
3-
return [s[i: i + k].ljust(k, fill) for i in range(0, len(s), k)]
3+
return [s[i: i + k].ljust(k, fill) for i in range(0, len(s), k)]

‎solution/2100-2199/2162.Minimum Cost to Set Cooking Time/Solution.py‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
class Solution:
2-
def minCostSetTime(self, startAt: int, moveCost: int, pushCost: int, targetSeconds: int) -> int:
2+
def minCostSetTime(
3+
self, startAt: int, moveCost: int, pushCost: int, targetSeconds: int
4+
) -> int:
35
def f(m, s):
46
if not 0 <= m < 100 or not 0 <= s < 100:
57
return inf

‎solution/2200-2299/2217.Find Palindrome With Fixed Length/README.md‎

Lines changed: 88 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,102 @@
5454
<!-- 这里可写当前语言的特殊实现逻辑 -->
5555

5656
```python
57-
57+
class Solution:
58+
def kthPalindrome(self, queries: List[int], intLength: int) -> List[int]:
59+
l = (intLength + 1) >> 1
60+
start, end = 10**(l - 1), 10**l - 1
61+
ans = []
62+
for q in queries:
63+
v = start + q - 1
64+
if v > end:
65+
ans.append(-1)
66+
continue
67+
s = str(v)
68+
s += s[::-1][intLength % 2:]
69+
ans.append(int(s))
70+
return ans
5871
```
5972

6073
### **Java**
6174

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

6477
```java
78+
class Solution {
79+
public long[] kthPalindrome(int[] queries, int intLength) {
80+
int n = queries.length;
81+
long[] ans = new long[n];
82+
int l = (intLength + 1) >> 1;
83+
long start = (long) Math.pow(10, l - 1);
84+
long end = (long) Math.pow(10, l) - 1;
85+
for (int i = 0; i < n; ++i) {
86+
long v = start + queries[i] - 1;
87+
if (v > end) {
88+
ans[i] = -1;
89+
continue;
90+
}
91+
String s = "" + v;
92+
s += new StringBuilder(s).reverse().substring(intLength % 2);
93+
ans[i] = Long.parseLong(s);
94+
}
95+
return ans;
96+
}
97+
}
98+
```
6599

100+
### **C++**
101+
102+
```cpp
103+
class Solution {
104+
public:
105+
vector<long long> kthPalindrome(vector<int>& queries, int intLength) {
106+
int l = (intLength + 1) >> 1;
107+
long long start = pow(10, l - 1), end = pow(10, l) - 1;
108+
vector<long long> ans;
109+
for (int& q : queries)
110+
{
111+
long long v = start + q - 1;
112+
if (v > end)
113+
{
114+
ans.push_back(-1);
115+
continue;
116+
}
117+
string s = to_string(v);
118+
string s1 = s;
119+
reverse(s1.begin(), s1.end());
120+
s += s1.substr(intLength % 2);
121+
ans.push_back(stoll(s));
122+
}
123+
return ans;
124+
}
125+
};
126+
```
127+
128+
### **Go**
129+
130+
```go
131+
func kthPalindrome(queries []int, intLength int) []int64 {
132+
l := (intLength + 1) >> 1
133+
start, end := int(math.Pow10(l-1)), int(math.Pow10(l))-1
134+
var ans []int64
135+
for _, q := range queries {
136+
v := start + q - 1
137+
if v > end {
138+
ans = append(ans, -1)
139+
continue
140+
}
141+
t := v
142+
if intLength%2 == 1 {
143+
t /= 10
144+
}
145+
for t > 0 {
146+
v = v*10 + t%10
147+
t /= 10
148+
}
149+
ans = append(ans, int64(v))
150+
}
151+
return ans
152+
}
66153
```
67154

68155
### **TypeScript**

‎solution/2200-2299/2217.Find Palindrome With Fixed Length/README_EN.md‎

Lines changed: 87 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,17 +46,101 @@ The first six palindromes of length 4 are:
4646
### **Python3**
4747

4848
```python
49-
49+
class Solution:
50+
def kthPalindrome(self, queries: List[int], intLength: int) -> List[int]:
51+
l = (intLength + 1) >> 1
52+
start, end = 10**(l - 1), 10**l - 1
53+
ans = []
54+
for q in queries:
55+
v = start + q - 1
56+
if v > end:
57+
ans.append(-1)
58+
continue
59+
s = str(v)
60+
s += s[::-1][intLength % 2:]
61+
ans.append(int(s))
62+
return ans
5063
```
5164

5265
### **Java**
5366

5467
```java
68+
class Solution {
69+
public long[] kthPalindrome(int[] queries, int intLength) {
70+
int n = queries.length;
71+
long[] ans = new long[n];
72+
int l = (intLength + 1) >> 1;
73+
long start = (long) Math.pow(10, l - 1);
74+
long end = (long) Math.pow(10, l) - 1;
75+
for (int i = 0; i < n; ++i) {
76+
long v = start + queries[i] - 1;
77+
if (v > end) {
78+
ans[i] = -1;
79+
continue;
80+
}
81+
String s = "" + v;
82+
s += new StringBuilder(s).reverse().substring(intLength % 2);
83+
ans[i] = Long.parseLong(s);
84+
}
85+
return ans;
86+
}
87+
}
88+
```
5589

90+
### **C++**
91+
92+
```cpp
93+
class Solution {
94+
public:
95+
vector<long long> kthPalindrome(vector<int>& queries, int intLength) {
96+
int l = (intLength + 1) >> 1;
97+
long long start = pow(10, l - 1), end = pow(10, l) - 1;
98+
vector<long long> ans;
99+
for (int& q : queries)
100+
{
101+
long long v = start + q - 1;
102+
if (v > end)
103+
{
104+
ans.push_back(-1);
105+
continue;
106+
}
107+
string s = to_string(v);
108+
string s1 = s;
109+
reverse(s1.begin(), s1.end());
110+
s += s1.substr(intLength % 2);
111+
ans.push_back(stoll(s));
112+
}
113+
return ans;
114+
}
115+
};
56116
```
57117
58-
<!-- tabs:end -->
59-
<!-- tabs:end -->
118+
### **Go**
119+
120+
```go
121+
func kthPalindrome(queries []int, intLength int) []int64 {
122+
l := (intLength + 1) >> 1
123+
start, end := int(math.Pow10(l-1)), int(math.Pow10(l))-1
124+
var ans []int64
125+
for _, q := range queries {
126+
v := start + q - 1
127+
if v > end {
128+
ans = append(ans, -1)
129+
continue
130+
}
131+
t := v
132+
if intLength%2 == 1 {
133+
t /= 10
134+
}
135+
for t > 0 {
136+
v = v*10 + t%10
137+
t /= 10
138+
}
139+
ans = append(ans, int64(v))
140+
}
141+
return ans
142+
}
143+
```
60144

61145
### **TypeScript**
62146

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
class Solution {
2+
public:
3+
vector<long long> kthPalindrome(vector<int>& queries, int intLength) {
4+
int l = (intLength + 1) >> 1;
5+
long long start = pow(10, l - 1), end = pow(10, l) - 1;
6+
vector<long long> ans;
7+
for (int& q : queries)
8+
{
9+
long long v = start + q - 1;
10+
if (v > end)
11+
{
12+
ans.push_back(-1);
13+
continue;
14+
}
15+
string s = to_string(v);
16+
string s1 = s;
17+
reverse(s1.begin(), s1.end());
18+
s += s1.substr(intLength % 2);
19+
ans.push_back(stoll(s));
20+
}
21+
return ans;
22+
}
23+
};
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
func kthPalindrome(queries []int, intLength int) []int64 {
2+
l := (intLength + 1) >> 1
3+
start, end := int(math.Pow10(l-1)), int(math.Pow10(l))-1
4+
var ans []int64
5+
for _, q := range queries {
6+
v := start + q - 1
7+
if v > end {
8+
ans = append(ans, -1)
9+
continue
10+
}
11+
t := v
12+
if intLength%2 == 1 {
13+
t /= 10
14+
}
15+
for t > 0 {
16+
v = v*10 + t%10
17+
t /= 10
18+
}
19+
ans = append(ans, int64(v))
20+
}
21+
return ans
22+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
class Solution {
2+
public long[] kthPalindrome(int[] queries, int intLength) {
3+
int n = queries.length;
4+
long[] ans = new long[n];
5+
int l = (intLength + 1) >> 1;
6+
long start = (long) Math.pow(10, l - 1);
7+
long end = (long) Math.pow(10, l) - 1;
8+
for (int i = 0; i < n; ++i) {
9+
long v = start + queries[i] - 1;
10+
if (v > end) {
11+
ans[i] = -1;
12+
continue;
13+
}
14+
String s = "" + v;
15+
s += new StringBuilder(s).reverse().substring(intLength % 2);
16+
ans[i] = Long.parseLong(s);
17+
}
18+
return ans;
19+
}
20+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /