计算字符串逆序数
字符串由大写字母A、B、C、D组成,个数和顺序不定,默认大小是字典序,计算字符串中逆序数。
样例:DBBAC
其中,D的逆序数是4
B的逆序数是1
B的逆序数是1
A的逆序数是0
C的逆序数是0
所以该字符串的逆序数是6,要求时间复杂度是O(n)
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; }