cf801a

来源:互联网 发布:linux taskset 编辑:程序博客网 时间:2024/05/19 12:38

CF传统的思维题。感觉这种题目想到了就很简单,想不到就GG,看了别人的思路才写出来的,做个记录。

思路:先遍历一遍字符串,标记上VK,然后再遍历一遍除去标记的字符串,如果有连续的如VV或KK则加上1,这两种情况都可以转换成VK。

#include<cstdio>#include<cstring>#include<string>using namespace std;int cnt;char s[105];int main(){    while(scanf("%s",s)!=EOF){        int length=strlen(s);        cnt=0;        for(int i=0;i<length;i++){            if(s[i]=='V'&&s[i+1]=='K'){                cnt++;                s[i]=s[i+1]='#';                i++;            }        }        for(int i=0;i<length;i++){            if((s[i]=='V'&&s[i+1]=='V')||(s[i]=='K'&&s[i+1]=='K')){                cnt++;                break;            }        }        printf("%d\n",cnt);    }    return 0;}


原创粉丝点击