richagupta00007
BAN USERimport java.io.*;
import java.util.*;
/*
* To execute Java, please define "static void main" on a class
* named Solution.
*
* If you need more classes, simply define them inline.
*/
class Solution {
public static void main(String[] args){
String s = "a cBd LkmY";
Tough t = new Tough();
char[] arr = s.toCharArray();
t.sortArray(arr);
}
public void sortArray(char[] s){
int start = 0;
start = specialSort(s, start, s.length, 0);
start = specialSort(s, start + 1, s.length, 1);
specialSort(s, start+1, s.length, 2);
for(int i=0; i<s.length; i++){
System.out.print(s[i]);
}
}
public int specialSort(char[] s, int start, int length, int type){
int index = 0;
int lower = -1;
for(int i = start; i<length;i++){
char c = s[i];
boolean status = compare(type, c);
if(status && lower == -1){
index = i;
continue;
} else if(!status && lower == -1){
lower = i;
continue;
} else{
if(lower >= 0 && status){
if(Math.abs(i - lower) == 1){
char temp = s[i];
s[i] = s[lower];
s[lower] = temp;
index = lower;
lower = i;
} else{
char temp = s[i];
for(int k=i-1; k>=lower; k--){
s[k+1] = s[k];
}
s[lower] = temp;
index = lower;
lower = lower + 1;
}
}
}
}
return index;
}
public boolean compare(int type, char a){
boolean status = false;
switch(type){
case 0: if(Character.isLowerCase(a))
status = true;
break;
case 1: if(a == ' ')
status = true;
break;
case 2: if(Character.isUpperCase(a))
status = true;
break;
}
return status;
}
}
- richagupta00007 September 14, 2015