LintCode 两个字符串是变位词题目分析代码

题目

写出一个函数 anagram(s, t) 判断两个字符串是否可以通过改变字母的顺序变成一样的字符串。

样例 给出 s = "abcd",t="dcab",返回 true 给出 s = "ab", t = "ab", 返回 true. 给出 s = "ab", t = "ac", 返回 false.

分析

这种题目只需判断是否具有相同的字符,以及字符的数量是否相等 技巧是新建一个数组用于记录,若有就加一,多个就继续加一 再在另一个字符串里减一,最后如果碰到小于0的,就说明字符数不相等或者没有

代码

public class Solution {
    /**
     * @param s: The first string
     * @param b: The second string
     * @return true or false
     */
    public boolean anagram(String s, String t) {
        // write your code here
        if(s.length() != t.length())
            return false;
        
        int[] count = new int[256];
        
        for (int i = 0; i < s.length(); i++) {
            count[(int) s.charAt(i)]++;
        }
        
        for (int i = 0; i < t.length(); i++) {
            count[(int) t.charAt(i)]--;
            if(count[(int) t.charAt(i)] < 0)
                return false;
        }
        
        return true;
    }
};

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏cs

xml基本知识点

xml, Extensible Markup Language,可扩展的标记语言。 ? xml文档结构.jpg xml文档的规则 1.0 xml文档必须以一个...

3465
来自专栏小樱的经验随笔

Java学习笔记【持续更新】

一个简单的java程序如下: class Sakura {   public static void main(String[] arges)   {     ...

4155
来自专栏我爱编程

Day7函数式编程3/3

装饰器 由于函数也是一个对象,而且函数对象可以被赋值给变量,所以,通过变量也能调用该函数。 >>> def now(): ... print('2018...

3767
来自专栏Redis

Redis类型之lists类型

9、rpoplpush 从第一个list的尾部移除元素并添加到第二个list的头部,最后返回被移除的元素值,整个操作是原子的,如果第一个list是空或者不存在...

1490
来自专栏小古哥的博客园

JS数组去重的三种方法

在程序中,通常解决一个问题的方法有很多种。当然这些不同思路的解决方法,在性能和效率上也有很大差异。 以下是数字去重的三种方法, 一、循环遍历法(传统思路) 最简...

3835
来自专栏JAVA技术站

shell学习二数组 原

类似与C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0。

521
来自专栏吾爱乐享

java之学习vector类的特有功能

1302
来自专栏书山有路勤为径

词语模式_哈希表

已知字符串pattern与字符串str,确认str是否与pattern匹配。str与pattern匹配代表字符 串str中的单词与pattern中的字符一一对应...

874
来自专栏破晓之歌

JAVA入门1 原

下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848...

1462
来自专栏青玉伏案

算法与数据结构(十五) 归并排序(Swift 3.0版)

上篇博客我们主要聊了堆排序的相关内容,本篇博客,我们就来聊一下归并排序的相关内容。归并排序主要用了分治法的思想,在归并排序中,将我们需要排序的数组进行拆分,将其...

1975

扫码关注云+社区

领取腾讯云代金券