zoukankan      html  css  js  c++  java
  • 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);
        }
    }
  • 相关阅读:
    注解
    idea 快速生成返回值快捷方式
    异常处理
    finally 关键字
    博客园美化
    winform中webBrowser模拟网页操作中遇到的问题
    使用NPOI 2.1.1读取EXCEL2003/2007返回DataTable
    使用事务和SqlBulkCopy批量插入数据
    Java String比较
    Java 实例级别的锁和类级别的锁
  • 原文地址:https://www.cnblogs.com/nxzblogs/p/11274716.html
Copyright © 2011-2022 走看看