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;
    }
};