Java 题解 | #牛群构成判断#

牛群构成判断

https://www.nowcoder.com/practice/b7b8c4d6390146dabe52d78e9e7136c6

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> countS = new HashMap<>();
        Map<Character, Integer> countT = new HashMap<>();

        // 统计字符串s中每个字符的出现次数
        for (char c : s.toCharArray()) {
            countS.put(c, countS.getOrDefault(c, 0) + 1);
        }

        // 统计字符串t中每个字符的出现次数
        for (char c : t.toCharArray()) {
            countT.put(c, countT.getOrDefault(c, 0) + 1);
        }

        // 检查每个字符在两个字符串中的出现次数是否相同
        for (char c : countS.keySet()) {
            if (countS.get(c) != countT.getOrDefault(c, 0)) {
                return false;
            }
        }

        return true;
    }
}

该题主要考察的知识点是字符串的处理和字符的统计。

代码的文字解释如下:

  1. 判断两个输入字符串的长度是否相等,如果不相等,则可以直接返回false,因为长度不同的字符串肯定无法满足相同的字符构成要求。
  2. 创建两个Map<Character, Integer>对象,分别用于统计字符串S和字符串T中每个字符的出现次数。这里使用Character作为键,Integer作为值。
  3. 遍历字符串S,对于每个字符,使用getOrDefault方法来获取其当前的出现次数并加1,然后更新到countS中。
  4. 遍历字符串T,使用同样的方式来统计每个字符的出现次数,并将结果更新到countT中。
  5. 遍历countS中的每个字符,对于每个字符,比较其在countT中的出现次数是否相等。如果有任何字符的出现次数不同,则说明两个字符串的牛棚构成不相同,返回false
  6. 如果遍历完成后没有发现不同的字符出现次数,说明两个字符串的牛棚构成相同,返回true
全部评论

相关推荐

11-02 09:49
已编辑
货拉拉_测试(实习员工)
热爱生活的仰泳鲈鱼求你们别卷了:没事楼主,有反转查看图片
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
09-30 19:49
起名星人:蛮离谱的,直接要求转投销售
投递汇川技术等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务