Skip to content

Latest commit

 

History

History
54 lines (45 loc) · 1.04 KB

0074.子串简写.md

File metadata and controls

54 lines (45 loc) · 1.04 KB

74. 子串简写

题目链接

C

C++

#include<bits/stdc++.h>
using namespace std;
const int N=10010;
int arr[N]; //前缀和数组
char a,b;
string str;
int k;

int main()
{ //直接记录前缀和,记录前面有多少个a,
    cin>>k;cin>>str>>a>>b;
    
    for(int i=1;i<=str.size();i++)
    {
        if(str[i-1]==a)
        {
            arr[i]=arr[i-1]+1;
        }else {
            arr[i]=arr[i-1]; 
        }
    }
    
    long long res=0;
    //后面直接找出b字符,然后看他k个前面有多少个a字符
    for(int i=0;i<str.size();i++)
    {
        if(str[i]==b&&(i-k>=-1))
        { //然后读出sum,加到res中
            res+=arr[i-k+2];
        }
    }
    //这个一开始想错了
    //想成是要加上中间有多少个a,固然调试好久,可能是前面一直在
    //想题,没放松的原因了
    //后面才意识到是在当前字符串中,前面的a字符数量
    cout<<res<<endl;
    return 0;
}

Java

Python

JS

Go