专栏首页weixuqin 的专栏leecode刷题(14)-- 有效的字母异位词

leecode刷题(14)-- 有效的字母异位词

leecode刷题(14)-- 有效的字母异位词

有效的字母异位词

描述:

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

示例 1:

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

示例 2:

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

说明: 你可以假设字符串只包含小写字母。

进阶: 如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?


思路:

首先这里题目刚开始的有效字符异位词刚开始我还没看懂什么意思(.....((/- -)/),后来想了下,字符异位词其实也就是指:两个单词如果包含相同的字母,次序不同,则称为字母易位词。举个栗子:

"anagram" 和 "nagaram" 是字符异位词,而 "rat" 和 "car" 则不是字符异位词。

接下来我们就很容易能想到题目的解法了,既然字符异位词指的是字符串中字母的数目相同,而顺序不一致,所以我们可以对字符串按字母顺序排序,如果是字符异位词那么排序后的两个字符串应该完全一致。我们比较排序后的这两个字符串,相同返回 true,不相同返回 false。

代码第一版:

class Solution {
    public boolean isAnagram(String s, String t) {
        char[] a = s.toCharArray();
        char[] b = t.toCharArray();
        Arrays.sort(a);
        Arrays.sort(b);
        String a1 = new String(a);
        String b1 = new String(b);
        if(a1.equals(b1)){
            return true;
        }
        return false;
    }
}

代码第二版:

class Solution {
    public boolean isAnagram(String s, String t) {
        if(s.length() != t.length()){
            return false;
        }
        char[] a = s.toCharArray();
        char[] b = t.toCharArray();
        Arrays.sort(a);
        Arrays.sort(b);
        return Arrays.equals(a,b);
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • redis 学习(5)-- 列表类型

    使用 lpush 更新,rpop、lpop 删除,lrange 做排序分页等。类似微博的发布信息流。

    希希里之海
  • JDBC Template

    其实有比 JDBC Template 更好的操作数据库的框架(如 Mybatis),但是 JDBC Template 是基础,有助于我们更好的了解 Spring...

    希希里之海
  • 使用正则表达式替换构造字典

    希希里之海
  • Prometheus入门+grafana集成 原

    在浏览器访问:http://ip:9090/graph 。Prometheus会把自身作为一个项目进行自监控,查看收集到监控项:http://172.16.18...

    阿dai学长
  • 要想数组用的 6,怎能不懂 java.util.Arrays

    java.util.Arrays 类就是为数组而生的专用工具类,基本上常见的对数组的操作,Arrays 类都考虑到了,这让我由衷地觉得,是时候给该类的作者 Jo...

    沉默王二
  • 利用Java反射和类加载机制绕过JSP后门检测

    JSP 后门,一般是指文件名以 .jsp 等后缀结尾的,可运行于 Java servlet 及相关容器和组件内的通用 JSP 脚本。

    信安之路
  • 监控主机: node_exporter

    在Prometheus的架构设计中,Prometheus Server并不直接服务监控特定的目标,其主要任务负责数据的收集,存储并且对外提供数据查询支持。因此为...

    张琳兮
  • 不需要编写代码就可以构建应用程序?

    我们普遍认为,在依赖技术的现代世界中,会编码一定是件好事。但是业务团队甚至软件开发人员真的需要编写代码来构建应用程序吗?

    APICloud
  • 【答疑释惑】C语言常犯语法错误

    1 字符常量与字符串常量混淆。 char c; c="a"; 在这里就混淆了字符常量与字符串常量,字符常量是由一对单引号括起来的单个字符,字符串常量是一对双引...

    程序员互动联盟
  • 腾讯WeTest全体员工给您拜个早年啦!

    最后,WeTest全体员工恭祝所有开发者「在2019年“猪”事顺利,幸福安康。最重要的是,BUG不缠身!」

    WeTest质量开放平台团队

扫码关注云+社区

领取腾讯云代金券