首页 > 其他 > 详细

字符串 242.有效的字符异位词

时间:2020-09-02 19:28:38      阅读:34      评论:0      收藏:0      [点我收藏+]

题目

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

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

分析

首先要理解题目,什么是异位词?根据示例,我们知道它们互相有相同的字母,但是字母的排序不一样,这就是异位词。所以可以采用哈希表来记录s和t的对应字母的数目,这才是本质。

那么就很简单了,用两次循环来生成简单的哈希数组,再比较哈希数组,这是一个比较容易理解的方法。

代码

class Solution {
    public boolean isAnagram(String s, String t) {
        /*若均为空,则返回true*/
        if( s == "" && t == "" )
        {
            return true;
        }
        
        char[] array_s = s.toCharArray();
        char[] array_t = t.toCharArray();
        int[] next_s = new int[26];
        int[] next_t = new int[26];

        /*生成next数组*/
        for( int i = 0 ; i < s.length() ; i++ )
        {
            next_s[ array_s[i] - ‘a‘ ]+=1;
        }
        for( int i = 0 ; i < t.length() ; i++ )
        {
            next_t[ array_t[i] - ‘a‘ ]+=1;
        }

        /*比较next数组*/
        for( int i = 0 ; i < 26 ; i++ )
        {
            if( next_s[i] != next_t[i] )
            {
                return false;
            }
        }
        return true;

    }
}

字符串 242.有效的字符异位词

原文:https://www.cnblogs.com/modesty-boy/p/13602918.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!