赛后上网一搜题解题意理解错了,一直wa
题意:给你一个字符串,长度n<=1e5,你要把其中的的某些字母换成大于等于它的任意一个字母(例如a可以换成b到z,不换也可以),使最终这个序列中从开始到最后依次包含abcdefghijklmnopqrstuvwxyz。最后输出的是经修改过后的包含a到z的原字符串。
思路都是暴力但要理解对题意
#include<bits/stdc++.h>
using namespace std;
const int maxn=100010;
int n,m,k,f,flag;
int ans,tmp,cnt,dp[maxn];
int a[maxn],c[maxn];
char s[maxn];
char ch;
int main()
{
int T,cas=1;
while(scanf("%s",s)!=EOF)
{
ans=0; flag=0;
ch='a';
f=0;
int l=strlen(s);
for(k=0;k<l;k++) {
if(s[k]<=ch){
s[k]=ch;
ch++;ans++;
}
if(ans==26) {flag=1;break;}
}
if(flag) printf("%s\n",s);
else printf("-1\n");
}
}