java题解leetcode242.有效的字母异位词

 更新时间:2023年10月13日 09:38:33   作者:健身的墨镜  
这篇文章主要为大家介绍了java题解leetcode242.有效的字母异位词方法示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

leetcode242.有效的字母异位词

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

注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。

解决问题

一开始我想到的是拆分成数组再排序,最后比较就行,但是这样时间很长,要将近40ms

示例

char[] s1=s.toCharArray();
        List<Character> x=new ArrayList<>();
        for (char c : s1) {
            x.add(c);
        }
        x.sort((o1,o2)->o1.charValue()-o2.charValue());
        char[] s2=t.toCharArray();
        List<Character> y=new ArrayList<>();
        for (char c : s2) {
            y.add(c);
        }
        y.sort((o1,o2)->o1.charValue()-o2.charValue());
        if(x.size()!=y.size()){
            return false;
        }
        for (int i = 0; i < x.size(); i++) {
            if(x.get(i)!=y.get(i)){
                return false;
            }
        }
        return true;

参考代码将该问题转换为比较字符串中字母出现次数问题,并只需要在扫描s时在26位数组中记录出现次数,然后扫描t时减去相应的次数,最后检测数组是否全为零就可以完美解决,只用了3ms

public boolean isAnagram(String s, String t) {
        int[] hash=new int[26];
        for (int i = 0; i < s.length(); i++) {
            hash[s.charAt(i)-'a']++;
        }
        for (int i = 0; i < t.length(); i++) {
            hash[t.charAt(i)-'a']--;
        }
        for (int i = 0; i < 26; i++) {
            if(hash[i]!=0){
                return false;
            }
        }
        return true;
    }

以上就是java题解leetcode242.有效的字母异位词的详细内容,更多关于java题解有效字母异位词的资料请关注脚本之家其它相关文章!

相关文章

  • 分析JAVA中几种常用的RPC框架

    分析JAVA中几种常用的RPC框架

    这篇文章主要介绍了JAVA中几种常用的RPC框架的相关知识点,对此有兴趣的朋友参考学习下吧。
    2018-03-03
  • Kotlin基础教程之dataclass,objectclass,use函数,类扩展,socket

    Kotlin基础教程之dataclass,objectclass,use函数,类扩展,socket

    这篇文章主要介绍了Kotlin基础教程之dataclass,objectclass,use函数,类扩展,socket的相关资料,需要的朋友可以参考下
    2017-05-05
  • java实现简单快递系统

    java实现简单快递系统

    这篇文章主要为大家详细介绍了java实现简单快递系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • SpringBoot项目启动后再请求远程接口的解决方式

    SpringBoot项目启动后再请求远程接口的解决方式

    Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的创建、运行、调试、部署等,这篇文章主要介绍了SpringBoot项目启动后再请求远程接口的实现方式 ,需要的朋友可以参考下
    2023-02-02
  • java 中枚举类enum的values()方法的详解

    java 中枚举类enum的values()方法的详解

    这篇文章主要介绍了java 中枚举类enum的values()方法的详解的相关资料,希望通过本文大家能够掌握这部分内容,需要的朋友可以参考下
    2017-09-09
  • java 正则表达式匹配Matcher类的使用

    java 正则表达式匹配Matcher类的使用

    Matcher类在Java中用于正则表达式匹配,本文主要介绍了java 正则表达式匹配Matcher类的使用,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • Mybatis详细对比一级缓存与二级缓存

    Mybatis详细对比一级缓存与二级缓存

    MyBatis 包含一个非常强大的查询缓存特性,它可以非常方便地配置和定制,缓存可以极大的提升查询效率。MyBatis中默认定义了两级缓存,分别是一级缓存和二级缓存
    2022-10-10
  • Windows下gradle的安装与配置的超详细教程

    Windows下gradle的安装与配置的超详细教程

    这篇文章主要介绍了Windows下gradle的安装与配置,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • 详解spring boot 使用application.properties 进行外部配置

    详解spring boot 使用application.properties 进行外部配置

    这篇文章主要介绍了详解spring boot 使用application.properties 进行外部配置,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • 详谈Spring框架之事务管理

    详谈Spring框架之事务管理

    下面小编就为大家带来一篇详谈Spring框架之事务管理。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09

最新评论