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。