This commit is contained in:
kkunkka
2024-01-15 17:16:42 +08:00
parent 4653a6e847
commit cf1c98eac1

View File

@@ -0,0 +1,40 @@
package com.dota.map;
/**
* 构造限制重复的字符串
*/
class Solution {
public String repeatLimitedString(String s, int repeatLimit) {
var dp = new int[26];
for (char c : s.toCharArray()) {
dp[c - 'a']++;
}
var res = new StringBuilder();
var i = 25;
while (i >= 0) {
if (dp[i] > repeatLimit) {
res.append(String.valueOf((char) ('a' + i)).repeat(repeatLimit));
dp[i] -= repeatLimit;
var j = i - 1;
while (j >= 0 && dp[j] == 0) {
j--;
}
if (j == -1) {
break;
}
res.append((char)('a' + j));
dp[j]--;
} else {
res.append(String.valueOf((char) ('a' + i)).repeat(dp[i]));
i--;
}
}
return res.toString();
}
}