题目—判断两数是否为变形数

给定两个字符串str1 str2 ,如果str1 str2 中出现的字符种类一样且每种字符出现的次数也一样,那么str1 str2互为变形词。

package DataStructure;

import java.lang.String;
import java.util.Scanner;

public class Deformation {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("输入str1");
        java.lang.String str1 = scanner.nextLine();
        System.out.println("输入str2");
        java.lang.String str2 = scanner.nextLine();
        System.out.println("str1 str2 是否为变形数: "+isDeformation(str1,str2));
    }
        
        public static boolean isDeformation(String str1, String str2){

            /**
             * 如果str1 str2任意一个为null则返回为false,
             * str1 str2 长度不同则返回为false;
             */
            if(str1 == null ||  str2 == null || str1.length() != str2.length()){
                return false;
            }

            /**
             * 将字符串变为字符数组;
             * 申请一个长度为256的int数组,作为计数器,使用char数组的元素作为下标,计算每个字符出现的次数
             */
            char[] char1 = str1.toCharArray();
            char[] char2 = str2.toCharArray();
            int[] count = new int[256];

            //同一种字符,不断++,得到一个int数组
            for(int i = 0;i<char1.length;i++)
            {
                count[char1[i]]++;
            }

            //验证str2,同一种字符,不断——,如果出现减少后的值小于0,则返回false;
            for(int i = 0;i<char2.length;i++){

                if(count[char2[i]]--  ==  0){
                    return false;
                }
            }

            return true;
        }
        

}