题目来源:
leetcode题目,网址:2287. 重排字符形成目标字符串 - 力扣(LeetCode)
解题思路:
分别对两字符中字符计数,然后在只考虑目标字符串中的单个字符的情况下,计算原字符串中字符最多能够组成的目标字符串个数,最后返回其中的最小值即可。
解题代码:
class Solution {
public int rearrangeCharacters(String s, String target) {
int[] countS=new int[26];
int[] countT=new int[26];
for(int i=0;i<s.length();i++){
countS[s.charAt(i)-'a']++;
}
for(int i=0;i<target.length();i++){
countT[target.charAt(i)-'a']++;
}
int res=101;
for(int i=0;i<26;i++){
if(countT[i]!=0){
res=Math.min(countS[i]/countT[i],res);
}
}
return res==101?0:res;
}
}
总结:
与官方题解的思路基本一致,不过官方题解使用的是哈希表。