-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathLeetCode-SuperPalindromes.cpp
123 lines (108 loc) · 2.81 KB
/
LeetCode-SuperPalindromes.cpp
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
typedef long long ll;
class Solution {
public:
int superpalindromesInRange(const string& left, const string& right) {
vector<ll> v = {
1,
4,
9,
121,
484,
10201,
12321,
14641,
40804,
44944,
1002001,
1234321,
4008004,
100020001,
102030201,
104060401,
121242121,
123454321,
125686521,
400080004,
404090404,
10000200001,
10221412201,
12102420121,
12345654321,
40000800004,
1000002000001,
1002003002001,
1004006004001,
1020304030201,
1022325232201,
1024348434201,
1210024200121,
1212225222121,
1214428244121,
1232346432321,
1234567654321,
4000008000004,
4004009004004,
100000020000001,
100220141022001,
102012040210201,
102234363432201,
121000242000121,
121242363242121,
123212464212321,
123456787654321,
400000080000004,
10000000200000001,
10002000300020001,
10004000600040001,
10020210401202001,
10022212521222001,
10024214841242001,
10201020402010201,
10203040504030201,
10205060806050201,
10221432623412201,
10223454745432201,
12100002420000121,
12102202520220121,
12104402820440121,
12122232623222121,
12124434743442121,
12321024642012321,
12323244744232321,
12343456865434321,
12345678987654321,
40000000800000004,
40004000900040004
};
ll left_n = stol(left);
ll right_n = stol(right);
int x, y;
{
int l = 0;
int r = v.size();
while (l < r) {
int m = (l + r) >> 1;
if (v[m] < left_n) {
l = m + 1;
} else {
r = m;
}
}
x = l;
}
{
int l = 0;
int r = v.size();
while (l < r) {
int m = (l + r) >> 1;
if (v[m] > right_n) {
r = m;
} else {
l = m + 1;
}
}
y = r;
}
return y - x;
}
};