1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| // @Title: 找到指定长度的回文数 (Find Palindrome With Fixed Length)
// @Author: 15816537946@163.com
// @Date: 2022-03-27 13:23:18
// @Runtime: 336 ms
// @Memory: 102.1 MB
class Solution {
long long gao(long long x, int y) {
vector<int> vec;
long long ret = x;
for (; x; x /= 10) vec.push_back(x % 10);
for (int i = vec.size() - y; i < vec.size(); i++) ret = ret * 10 + vec[i];
return ret;
}
public:
vector<long long> kthPalindrome(vector<int>& queries, int intLength) {
int t = (intLength + 1) / 2;
long long L = 1, R = 10;
for (int i = 1; i < t; i++) L *= 10, R *= 10;
vector<long long> ans;
for (int x : queries) {
if (R - L < x) ans.push_back(-1);
else ans.push_back(gao(x - 1 + L, intLength - t));
}
return ans;
}
};
|