題目——判斷兩數是否為變形數

## 題目---判斷兩數是否為變形數

**給定兩個字符串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;

}

}

```


分享到:


相關文章: