计算字符串逆序数

字符串由大写字母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;
    }
复制代码

 

posted @   QQLQ  阅读(1143)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示