leetcode-242-有效的字母异位词

Posted nxzblogs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode-242-有效的字母异位词相关的知识,希望对你有一定的参考价值。

问题:

技术图片

 

package com.example.demo;

import java.util.Arrays;

public class Test242 

    /**
     * 判断是否是异位词
     * 分析:  (问题提示:都是小写字母的情况)
     * 利用桶站位,假如是异位词,则这两个字符串的长度相等,则遍历字符串,将第一个字符串中存在的字符时,在桶中+1,
     * 在第二个存在的字符,则桶中-1,当遍历完成之后,遍历数组,是否所有的位置都是0,如果都是0,则是异位,不都是0,则不是异位
     */
    public boolean isAnagram(String s, String t) 
        int len1 = s.length();
        int len2 = t.length();
        if (len1 != len2) 
            return false;
        

        int cur = 0;
        int[] bucket = new int[26];
        while (cur < len1) 
            // 都是小写字母的情况
            int index1 = s.charAt(cur) - ‘a‘;
            bucket[index1]++;
            int index2 = t.charAt(cur) - ‘a‘;
            bucket[index2]--;
            cur++;
        
        for (int i : bucket) 
            if (i != 0) 
                return false;
            
        
        return true;
    

    /**
     * 方法二:利用排序和比较字符串
     */
    public boolean isAnagram1(String s, String t) 
        if (s.length() != t.length()) 
            return false;
        
        char[] chars = s.toCharArray();
        char[] chars1 = t.toCharArray();
        Arrays.sort(chars);
        Arrays.sort(chars1);
        return Arrays.equals(chars, chars1);
    

    public static void main(String[] args) 
        Test242 t = new Test242();
        boolean anagram = t.isAnagram1("asdf", "fdas");
        System.out.println(anagram);
    

 

以上是关于leetcode-242-有效的字母异位词的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode-242-有效的字母异位词

leetCode242 有效的字母异位词

LeetCode 242. 有效的字母异位词

LeetCode 242. 有效的字母异位词(Valid Anagram)

leetcode 242 有效的字母异位词(Easy)

leetcode-242-有效的字母异位词