zoukankan      html  css  js  c++  java
  • 字符串 242.有效的字符异位词

    题目

    给定两个字符串 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;
    
        }
    }
    
    纸上得来终觉浅,绝知此事要躬行
  • 相关阅读:
    关于《GridView“GridView1”激发了未处理的事件“PageIndexChanging”》的问题!
    励志名言
    Java从入门到精通
    Java学习每天进步一点点
    学**况
    git常用命令
    linux常用命令
    linux yum命令详解
    git分支
    linux常用命令(2)
  • 原文地址:https://www.cnblogs.com/modesty-boy/p/13602918.html
Copyright © 2011-2022 走看看