Skip to content

Commit 7e99067

Browse files
authored
Update find-the-closest-palindrome.cpp
1 parent 3880973 commit 7e99067

File tree

1 file changed

+5
-7
lines changed

1 file changed

+5
-7
lines changed

Diff for: C++/find-the-closest-palindrome.cpp

+5-7
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,18 @@ class Solution {
55
public:
66
string nearestPalindromic(string n) {
77
const auto l = n.size();
8-
vector<long long> candidates;
9-
candidates.emplace_back(static_cast<long long>(pow(10, l)) + 1);
10-
candidates.emplace_back(static_cast<long long>(pow(10, l - 1)) - 1);
8+
unordered_set<long long> candidates;
9+
candidates.emplace(static_cast<long long>(pow(10, l)) + 1);
10+
candidates.emplace(static_cast<long long>(pow(10, l - 1)) - 1);
1111
auto prefix = stol(n.substr(0, (l + 1) / 2));
1212
for (long long i = -1; i <= 1; ++i) {
1313
auto p = to_string(prefix + i);
1414
auto pp = p + string(p.rbegin() + (l % 2), p.rend());
15-
candidates.emplace_back(stol(pp));
15+
candidates.emplace(stol(pp));
1616
}
1717
long long num = stol(n), closest_val = numeric_limits<long long>::max();
18+
candidates.erase(num);
1819
for (const auto& val : candidates) {
19-
if (val == num) {
20-
continue;
21-
}
2220
if (abs(val - num) < abs(closest_val - num)) {
2321
closest_val = val;
2422
} else if (abs(val - num) == abs(closest_val - num)) {

0 commit comments

Comments
 (0)