• 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);
        }
    }
  • 相关阅读:
    递归练习:走台阶
    递归练习:计算最大公约数和最小公倍数
    递归练习:逆序输出一个十进制数的各位数字
    m4, autoconf
    Makefile 和 CMakeLists.txt
    Java中的String pool
    小米路由Mini刷Breed, 潘多拉和LEDE
    Centos 编译LEDE/OpenWrt
    Centos6下编译安装gcc6.4.0
    IntelliJ IDEA遇到Unable to parse template “Class”错误
  • 原文地址:https://www.cnblogs.com/nxzblogs/p/11274716.html
Copyright © 2020-2023  润新知