## 題目---判斷兩數是否為變形數
**給定兩個字符串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
{
count[char1[i]]++;
}
//驗證str2,同一種字符,不斷——,如果出現減少後的值小於0,則返回false;
for(int i = 0;i
if(count[char2[i]]-- == 0){
return false;
}
}
return true;
}
}
```