[算法][力扣242]有效的字母异位词

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的 字母异位词。

示例 1:
    输入: s = "anagram", t = "nagaram"
    输出: true

示例 2:
    输入: s = "rat", t = "car"
    输出: false

解法一:排序后对比

public class Test_validAnagram {

    public static void main(String[] args) {
        String s = "anagram";
        String t = "nagaram";
        boolean ret = validAnagram(s, t);
        System.out.println(ret);
    }

    public static boolean validAnagram(String s1, String s2) {
        char[] chars1 = s1.toCharArray();
        char[] chars2 = s2.toCharArray();

        Arrays.sort(chars1);
        Arrays.sort(chars2);

        return Arrays.equals(chars1, chars2);
    }
}

解法二:使用HashMap统计每次字符出现的次数

public class Test_validAnagram2 {

    public static void main(String[] args) {
        String s = "anagram";
        String t = "nagaraam";
        boolean ret = validAnagram(s, t);
        System.out.println(ret);
    }

    public static boolean validAnagram(String s1, String s2) {
        char[] chars1 = s1.toCharArray();
        char[] chars2 = s2.toCharArray();

        // 用 HashMap 来记录字符串 s1 中出现的字符的次数
        HashMap<Character, Integer> record = new HashMap<>();
        for (char ch : chars1) {
            record.put(ch, record.getOrDefault(ch, 0) + 1);
        }

        // 遍历char2,同事比较元素
        for (char ch2 : chars2) {
            int count = record.getOrDefault(ch2, 0) - 1;
            record.put(ch2, count);
            if (count < 0) {
                return false;
            }
        }
        return true;
    }
}

解法三:使用数组统计字符个数

public class Test_validAnagram3 {

    public static void main(String[] args) {
        String s = "anagram";
        String t = "nagaram";
        boolean ret = validAnagram(s, t);
        System.out.println(ret);
    }

    public static boolean validAnagram(String s1, String s2) {
        char[] chars1 = s1.toCharArray();
        char[] chars2 = s2.toCharArray();

        // 用 HashMap 来记录字符串 s1 中出现的字符的次数
        int[] record = new int[26];
        for (char ch : chars1) {
            record[ch - 'a']++;
        }

        // 遍历char2,同事比较元素
        for (char ch2 : chars2) {
            record[ch2 - 'a']--;
            if (record[ch2 - 'a'] < 0) {
                return false;
            }
        }
        return true;
    }
}

本数据集涵盖 黑龙江省 全域的多尺度行政区划信息,按照行政层级划分为 1个省级单元、13个地级市以及129个区县级行政单元。数据内容包含以下部分:1、【独立行政边界数据】按照省、地级市、区县三级行政层级分别建立独立的边界矢量数据文件(即shp文件),可实现分级加载与独立编辑。2、【可编辑 MXD 工程文件】基于 ArcGIS 平台构建,保存了分级符号化方案、标注样式、投影坐标系以及图层组织结构,便于用户直接在 GIS 软件中加载和修改。3、【标准化 Shapefile 矢量文件(SHP)】采用国际通用的 ESRI Shapefile 格式,属性表中包含行政区划代码、名称、上级单位等信息,满足空间分析、地图制图及数据叠加等应用需求。4、【标准成图 GeoTIFF 栅格文件(TIF)】按照制图规范输出的高分辨率 GeoTIFF 格式地图文件,保留地理参考信息,可直接用于出版、报告或网络地图展示。5、【资源应用】该数据集不仅具备完整、精确的省行政区划边界信息,还可与多种地理空间数据进行无缝集成,因而在多个领域都具有广泛的应用潜力。5.1-在区域统计分析方面,研究人员可利用该数据集结合人口普查数据、经济指标、社会统计信息等,对该省及其下属各级行政单元的经济社会发展状况进行定量分析,支持宏观决策与区域规划。5.2-在空间可视化领域,借助 GIS 软件(如 ArcGIS、QGIS),该数据集可作为底图框架,与专题数据(如气候分布、土地利用类型、交通网络等)叠加,实现高分辨率、可定制化的地图制作与成果展示。5.3-在地理建模方面,行政边界可作为区域划分的基本单元,用于水文模拟、气候模型、生态系统评估等空间计算过程,为模拟结果提供明确的空间约束条件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值