計算字符串逆序數

字符串由大寫字母A、B、C、D組成,個數和順序不定,默認大小是字典序,計算字符串中逆序數。 
樣例:DBBAC 
其中,D的逆序數是4 
B的逆序數是1 
B的逆序數是1 
A的逆序數是0 
C的逆序數是0 
因此該字符串的逆序數是6,要求時間複雜度是O(n)spa

int  fun(String str){
        int numA=0;//A的數量
        int numB=0;//B的數量
        int numC=0;//C的數量
        int numD=0;//D的數量
        int count=0;//總計逆序數
        for(int i=0;i<str.length();i++){
            char ch=str.charAt(str.length()-i-1);
            if(ch=='A')
                numA++;
            if(ch=='B'){
                count=count+numA;
                numB++;
            }
            if(ch=='C'){
                count=count+numB+numA;
                numC++;
            }
            if(ch=='D'){
                count=count+numA+numB+numC;
                numD++;
            }
        }
        return count;
    }
相關文章
相關標籤/搜索