File tree 1 file changed +5
-7
lines changed
1 file changed +5
-7
lines changed Original file line number Diff line number Diff line change @@ -5,20 +5,18 @@ class Solution {
5
5
public:
6
6
string nearestPalindromic (string n) {
7
7
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 );
11
11
auto prefix = stol (n.substr (0 , (l + 1 ) / 2 ));
12
12
for (long long i = -1 ; i <= 1 ; ++i) {
13
13
auto p = to_string (prefix + i);
14
14
auto pp = p + string (p.rbegin () + (l % 2 ), p.rend ());
15
- candidates.emplace_back (stol (pp));
15
+ candidates.emplace (stol (pp));
16
16
}
17
17
long long num = stol (n), closest_val = numeric_limits<long long >::max ();
18
+ candidates.erase (num);
18
19
for (const auto & val : candidates) {
19
- if (val == num) {
20
- continue ;
21
- }
22
20
if (abs (val - num) < abs (closest_val - num)) {
23
21
closest_val = val;
24
22
} else if (abs (val - num) == abs (closest_val - num)) {
You can’t perform that action at this time.
0 commit comments