为什么!为什么不过编译
查看原帖
为什么!为什么不过编译
937725
JYW2011楼主2023/5/25 18:17
#include<bits/stdc++.h>
using namespace std;
int n,ans;char s[101];
int main(){
    cin>>n>>s;
    for(int i=n-2;i>=0;i--){//计算ans数组
        if(s[i]=='V'&&s[i+1]=='K')ans=1;//只有一个VK,ans为1
        else ans=0;
        if(s[i]=='V')ans+=ans[i+1];//如果当前字符是V,ans[i]应该等于ans[i+1]+1
        ans=max(ans,ans[i+1]);//如果不是V,ans[i]=0,ans[i+1]就是新的ans[i]
    }
    for(int i=0;i<n-1;i++)
        if(s[i]=='V'&&s[i+1]=='K'){//遇到VK就更新答案
            if(i>1&&s[i-1]=='V')ans=max(ans,ans[i+1]-1);//左边是VV或VK,需要重新计算ans
            if(i<n-2&&s[i+2]=='K')ans=max(ans,ans[i+2]-1);//右边是KK或VK,也需要重新计算ans
            ans++;i++;//VK加1,指针跳过K
        }
    cout<<ans<<endl;
    return 0;
}

2023/5/25 18:17
加载中...