2287. Rearrange Characters to Make Target String #
题目 #
- 给你两个下标从 0 开始的字符串
s
和target
。你可以从s
取出一些字符并将其重排,得到若干新的字符串。 - 从
s
中取出字符并重新排列,返回可以形成target
的 最大 副本数。
思路 #
模拟 #
代码 #
模拟 #
class Solution {
public int rearrangeCharacters(String s, String target) {
int[] cntS = new int[26], cntTarget = new int[26];
for (int i = 0; i < target.length(); i++) cntTarget[target.charAt(i)-'a']++;
for (int i = 0; i < s.length(); i++) cntS[s.charAt(i)-'a']++;
int ans = s.length();
for (int i = 0; i < 26; i++) {
if (cntTarget[i] != 0) ans = Math.min(ans, cntS[i] / cntTarget[i]);
}
return ans;
}
}