【LeetCode】242. 有效的字母异位词
242. 有效的字母异位词
知识点:字符串;哈希表
题目描述
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。
示例
输入: s = "anagram", t = "nagaram"
输出: true
输入: s = "rat", t = "car"
输出: false
解法一:排序
直接将两个字符串转化为字符数组,然后调用API排序,这样从前到后应该都是一样的。
class Solution {
    public boolean isAnagram(String s, String t) {
        if(s.length() != t.length()) return false;
        char[] chars = s.toCharArray();
        char[] chart = t.toCharArray();
        Arrays.sort(chars);
        Arrays.sort(chart);
        //或者可以直接调用比较方法判断两个数组是否相等;
        //Arrays.equals(chars,chart);
        int i = 0;
        while(i < s.length()){
            if(chars[i] != chart[i]) return false;
            else i++;
        }
        return true;
    }
}
解法二:哈希表
使用哈希表存储第一个字符串中每个字符出现的次数,然后遍历第二个字符串,如果出现新的,直接0-1,如果是有那个字符,那就那个字符的值-1,所以最后只要出现了-1那就false;
class Solution {
    public boolean isAnagram(String s, String t) {
        if(s.length() != t.length()) return false;
        Map<Character, Integer> map = new HashMap<>();
        for(Character c : s.toCharArray()){
            map.put(c, map.getOrDefault(c, 0)+1);
        }
        for(Character c : t.toCharArray()){
            map.put(c, map.getOrDefault(c, 0)-1); //有的话其值-1,没有的话直接-1;
            if(map.get(c) < 0) return false;
        }
        return true;
    }
}
												
											【LeetCode】242. 有效的字母异位词的更多相关文章
- 前端与算法 leetcode 242. 有效的字母异位词
		
目录 # 前端与算法 leetcode 242. 有效的字母异位词 题目描述 概要 提示 解析 解法一:哈希表 解法二:数组判断字符出现次数 解法三:转换字符串 算法 传入测试用例的运行结果 执行结果 ...
 - LeetCode 242. 有效的字母异位词(Valid Anagram)
		
242. 有效的字母异位词 LeetCode242. Valid Anagram 题目描述 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词. 示例 1: 输入: s ...
 - Java实现 LeetCode 242 有效的字母异位词
		
242. 有效的字母异位词 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词. 示例 1: 输入: s = "anagram", t = " ...
 - Leetcode 242.有效的字母异位词 By Python
		
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词. 示例 1: 输入: s = "anagram", t = "nagaram" ...
 - [LeetCode] 242. 有效的字母异位词 valid-anagram(排序)
		
注意这里字母异位词的定义是:字母类别及个数都要一样,只是排列顺序不同. class Solution(object): def isAnagram(self, s, t): ""& ...
 - Leetcode 242.有效的字母异位词(Python3)
		
题目: 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词. 示例 1: 输入: s = "anagram", t = "nagaram& ...
 - leetcode No.242 有效的字母异位词 valid-anagram (Python3实现)
		
题目描述 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词. 示例 1: 输入: s = "anagram", t = "nagaram&q ...
 - leetcode.字符串.242有效的字母异位词-Java
		
1. 具体题目 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词. 注:判断两个字符串包含的字母是否完全一样. 示例 1: 输入: s = "anagram&q ...
 - LeetCode 题解 |  242. 有效的字母异位词
		
给定两个字符串 s 和t,编写一个函数来判断 t 是否是 s 的字母异位词. 示例 1: 输入: s = "anagram", t = "nagaram" 输出 ...
 
随机推荐
- ISP_DPC坏点矫正
			
ISP_DPC坏点矫正 1. 坏点介绍 图像坏点(Bad pixel) : 图像传感器上光线采集点(像素点)所形成的阵列存在工艺上的缺陷,或光信号进行转化为电信号的过程中出现错误,从而会造成图像上像素 ...
 - 用Taro写一个微信小程序(三)—— 配置dva
			
一.关于dva dva 首先是一个基于 redux 和 redux-saga 的数据流方案,然后为了简化开发体验,dva 还额外内置了 react-router 和 fetch,所以也可以理解为一个轻 ...
 - MongoDB学习笔记01:入门
			
MongoDB简介 MongoDB是一个开源.高性能.无模式的文档型数据库,当初的设计就是用于简化开发和方便扩展,是NoSQL数据库产品中的一种.是最 像关系型数据库(MySQL)的非关系型数据库. ...
 - Android adb的常用命令
			
环境部署: 1.下载adb工具 2.下载奇兔刷机(或其它一键刷机软件),将手机与电脑进行连接 3.一键root手机 命令 1.获取设备列表及设备状态:adb devices 如果连接的设备不止一个, ...
 - Java并发:乐观锁
			
作者:汤圆 个人博客:javalover.cc 简介 悲观锁和乐观锁都属于比较抽象的概念: 我们可以用拟人的手法来想象一下: 悲观锁:像有些人,凡事都往坏的想,做最坏的打算:在java中就表现为,总是 ...
 - 练习(time.tick定时器监控数据库)
			
设立个定时器,监控数据库里fb_state(发布状态),并将数据库中一条记录的开始时间与截止时间和当前时间进行比对.若当前时间在开始时间与结束时间之间,则将发布状态设为1,否则为0. 同时,将此段代码 ...
 - 空闲时间研究一个小功能:winform桌面程序如何实现动态更换桌面图标
			
今天休息在家,由于天气热再加上疫情原因,就在家里呆着,空闲时想着,在很早以前(约3年前),产品人员跟我提了一个需求,那就是winform桌面程序的图标能否根据节日动态更换,这种需求在移动APP上还是比 ...
 - Django(66)admin后台管理注册用户
			
前言 我们使用django创建用户可以使用注册接口的方式,也可以使用django自带的后台管理系统,这里就介绍使用后台管理系统创建用户 admin后台管理系统 在使用之前我们可以使用第三方的插件,来美 ...
 - Zookeeper 分布式锁 (图解+秒懂+史上最全)
			
文章很长,而且持续更新,建议收藏起来,慢慢读! 高并发 发烧友社群:疯狂创客圈(总入口) 奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : 极致经典 + 社群大片好评 < Java 高并发 三 ...
 - Java @FunctionalInterface注解-6
			
在学习 Lambda 表达式时,我们提到如果接口中只有一个抽象方法(可以包含多个默认方法或多个 static 方法),那么该接口就是函数式接口.@FunctionalInterface 就是用来指定某 ...