Ideas:
Convert T to an array, traverse the array, swap the position to match S, and skip the characters that are not in S.
class Solution { public String customSortString(String S, String T) { char[] T_arr=T.toCharArray(); for(int i=0;i<T_arr.length;i++){ if(S.indexOf(T_arr[i])==-1){ continue; } for(int j=i;j<T_arr.length;j++){ if(S.indexOf(T_arr[j])==-1){ continue; } if(S.indexOf(T_arr[i])>S.indexOf(T_arr[j])){ char tmp=T_arr[i]; T_arr[i]=T_arr[j]; T_arr[j]=tmp; } } } return String.valueOf(T_arr); } }