Bruteforce java


#1

public class Solution {
int MOD=1000003;
public int factorial(int a){
if(a==0){
return 1;
}
return a*(factorial(a-1)%MOD)%MOD;
}

public  int findRank(String A) {
    long res=1;
    char[] ar= A.toCharArray();
    Arrays.sort(ar);
    String s="";
    int j=0;
    while(j<A.length()){
        s=create(s,ar);
        while(j<A.length()){
            if(s.charAt(j)==A.charAt(j)){
                j++;
            }
            else{
                break;
            }
        }
        if(j==A.length()){
            break;
        }
        String t= s.substring(0,j+1);
        res+= factorial(A.length()-1-j)* (diff(s.charAt(j),A.charAt(j),ar, t));
        res= res%MOD;
        s=A.substring(0,j+1);
        j++;
    }
    return (int)res;
}
public  String create(String s, char[] ar){
    for(int i=0; i<ar.length; i++){
        if(!s.contains(String.valueOf(ar[i]))){
            s+=ar[i];
        }
    }
    return s;
}
public int diff(char a, char b, char[] ar, String t){
    int d=0;
    int i=0;
    for(int j=0; j<ar.length; j++){
        if(ar[j]==a){
            i=j;
            break;
        }
    }
    while(i<ar.length){
        if(ar[i]!=b){
            i++;
            if(!t.contains(String.valueOf(ar[i]))){
                d++;
            }
        }
        else{
            break;
        }
    }
    return d;
}

}