• PAT 1040有几个PAT


    字符串 APPAPT 中包含了两个单词 PAT,其中第一个 PAT 是第 2 位(P),第 4 位(A),第 6 位(T);第二个 PAT 是第 3 位(P),第 4 位(A),第 6 位(T)。

    现给定字符串,问一共可以形成多少个 PAT

    输入格式:

    输入只有一行,包含一个字符串,长度不超过1,只包含 PAT 三种字母。

    输出格式:

    在一行中输出给定字符串中包含多少个 PAT。由于结果可能比较大,只输出对 1000000007 取余数的结果。

    输入样例:

    APPAPT
    

    输出样例:

    2




    暴力也能做O(n^3)的复杂度
    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
        char c[100005];
        scanf("%s",c);
        int l=strlen(c);
        
        long long time=0;
        for(int i=0;i<l;i++)
        {
            if(c[i]=='P')
            {
                for(int j=i+1;j<l;j++)
                {
                    if(c[j]=='A')
                    {
                        for(int k=j+1;k<l;k++)
                        {
                            if(c[k]=='T')
                            {
                                time++;
                            }
                        }
                    }
                }
            }
        }
        int t=1000000007;
        printf("%lld",time%t);
        return 0;
    }

    然后写了一个这个

    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
        char c[100005];
        scanf("%s",c);
        int l=strlen(c);
        long long numt,numat,numpat;
        numt=numat=numpat=0;
        for(int i=0;i<l;i++)
        {
            if(c[i]=='P')
                numt++;
            else if(c[i]=='A')
            {
                numat+=numt;
            }
            else 
            {
                numpat+=numat;
            }    
        }
        int t=1000000007;
        printf("%lld",numpat%t);
        return 0;
    }

    O(n)的复杂度

     
  • 相关阅读:
    误区30日谈25-30
    误区30日谈21-24
    误区30日谈16-20
    误区30日谈11-15
    误区30日谈6-10
    eclipse如何导入java项目文件
    Spring配置bean文件的底层实现方式
    hibernate中get,load,list,iterate的用法及比较
    MySQL数据库的事务管理
    单元格样式
  • 原文地址:https://www.cnblogs.com/lanclot-/p/10999981.html
Copyright © 2020-2023  润新知