import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @param t string字符串
* @return bool布尔型
*/
public boolean areHerdCompositionsEqual (String s, String t) {
// write code here
if (s.length() != t.length()) {
return false;
}
Map<Character, Integer> sCounts = new HashMap<>();
Map<Character, Integer> tCounts = new HashMap<>();
for (char c : s.toCharArray()) {
sCounts.put(c, sCounts.getOrDefault(c, 0) + 1);
}
for (char c : t.toCharArray()) {
tCounts.put(c, tCounts.getOrDefault(c, 0) + 1);
}
return sCounts.equals(tCounts);
}
}
Java代码
该题考察字符串的基本操作,集合的数据结构也考察了。
检查两个字符串s和t的长度是否相等,如果不相等,则牛棚的牛群构成肯定不相同,直接返回false。
初始化两个哈希表sCounts和tCounts来分别记录字符串s和t中每个字符出现的次数。
遍历字符串s中的每个字符,并将其添加到sCounts中。如果字符已经存在于哈希表中,我们增加对应字符的出现次数;否则,我们将该字符添加到哈希表并设置出现次数为1。遍历字符串t中的每个字符,并将其添加到tCounts中。
通过比较sCounts和tCounts是否相等来判断牛棚的牛群构成是否相同。如果两个哈希表相等,说明每个品种的牛在牛棚内的数量都相同,返回true;否则,返回false。

京公网安备 11010502036488号