1. 程式人生 > >767. Reorganize String

767. Reorganize String

ring new length bsp string urn ani col class

 1 class Solution {
 2     public String reorganizeString(String S) {
 3         if(S.length() == 0) return "";
 4         int[] arr = new int[26];
 5         int max = 0;
 6         for(int i = 0; i < S.length(); i++){
 7             arr[S.charAt(i) - ‘a‘]++;
 8         }
 9         int index = 0;
10 int sum = 0; 11 for(int i = 0; i < 26; i++){ 12 sum += arr[i]; 13 if(max < arr[i]){ 14 max = arr[i]; 15 index = i; 16 } 17 } 18 sum = sum - arr[index]; 19 arr[index] = 0; 20 if(sum < max-1){
21 return ""; 22 } 23 String[] res = new String[max]; 24 for(int i = 0; i < max; i++){ 25 res[i] = "" + (char)(‘a‘ + index); 26 for(int j = 0; j < 26; j++){ 27 if(arr[j] != 0){ 28 res[i] = res[i] + (char
)(‘a‘ + j); 29 arr[j]--; 30 break; 31 } 32 33 } 34 } 35 for(int i = 0; i < max; i++){ 36 for(int j = 0; j < 26; j++){ 37 if(arr[j] != 0){ 38 res[i] = res[i] + (char)(‘a‘ + j); 39 arr[j]--; 40 } 41 42 } 43 } 44 45 String str = ""; 46 for(int i = 0; i < max; i++){ 47 str += res[i]; 48 } 49 return str; 50 51 } 52 }

767. Reorganize String