560 div2 C. Good String

 题意:只有长度为偶数  且每个奇数位和后面的偶数维不一样的字符串为goodstring

给出一个字符串  输出最少删除几个字符 形成good串

 

这题wa了好几次

一开始没考虑删除一个后面会前移的!

他没说字典序之间减最后一个就好了。。。

可以采用一组一组加入  这样就保证为偶数个了

#include
using namespace std;
//input by bxd
#define rep(i,a,b) for(int i=(a);i<=(b);i++)
#define repp(i,a,b) for(int i=(a);i>=(b);--i)
#define RI(n) scanf("%d",&(n))
#define RII(n,m) scanf("%d%d",&n,&m)
#define RIII(n,m,k) scanf("%d%d%d",&n,&m,&k)
#define RS(s) scanf("%s",s);
#define ll long long
#define pb push_back
#define REP(i,N)  for(int i=0;i<(N);i++)
#define CLR(A,v)  memset(A,v,sizeof A)
//
#define inf 0x3f3f3f3f
const int N=2e6+5;
int a[N];
vector<char>ch;
int main()
{
    int n;RI(n);
    string s;
    cin>>s;
    int i=0;
    while(i<s.size())
    {
        int j=i+1;
        while(s[i]==s[j]&&j<=s.size())
        j++;
        if(j==s.size())break;
        ch.pb(s[i]);
        ch.pb(s[j]);
        i=j+1;
    }
    cout<endl;
    if(ch.size())
    rep(i,0,ch.size()-1)
    cout<<ch[i];


    return 0;
}
View Code

 

 

转载于:https://www.cnblogs.com/bxd123/p/10869416.html

你可能感兴趣的:(560 div2 C. Good String)