字符串由大寫字母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; }