腾讯2017暑期实习生笔试题,计算字符串逆序数

    xiaoxiao2021-03-25  137

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

    public static 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; }
    转载请注明原文地址: https://ju.6miu.com/read-3380.html

    最新回复(0)