Skip to content

Commit 4f9f2e1

Browse files
committed
create 2002 in java
1 parent 982eaa3 commit 4f9f2e1

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
class Solution {
2+
public int maxProduct(String s) {
3+
int[] dp = new int[4096];
4+
int res = 0, mask = (1 << s.length()) - 1;
5+
for (int m = 1; m <= mask; ++m)
6+
dp[m] = palSize(s, m);
7+
for (int m1 = mask; m1 > 0; --m1)
8+
if (dp[m1] * (s.length() - dp[m1]) > res)
9+
for(int m2 = mask ^ m1; m2 > 0; m2 = (m2 - 1) & (mask ^ m1))
10+
res = Math.max(res, dp[m1] * dp[m2]);
11+
return res;
12+
}
13+
private int palSize(String s, int mask) {
14+
int p1 = 0, p2 = s.length(), res = 0;
15+
while (p1 <= p2) {
16+
if ((mask & (1 << p1)) == 0)
17+
++p1;
18+
else if ((mask & (1 << p2)) == 0)
19+
--p2;
20+
else if (s.charAt(p1) != s.charAt(p2))
21+
return 0;
22+
else
23+
res += 1 + (p1++ != p2-- ? 1 : 0);
24+
}
25+
return res;
26+
}
27+
}

0 commit comments

Comments
 (0)