您的位置:首页 > 其它

牛客练习赛13_C-幸运数字Ⅲ(思维)

2018-03-21 20:29 239 查看
传送门

思路:简单的推理一下,对于正常的情况只要从左到右暴力判断就行。

对于47数字很多杂糅的话,我们只需要判断如果s[i-1]==4&&s[i+1]==7的话

如果s[i]==4且i是偶数且k此时是奇数s[i]变成7;

如果s[i]==7且i是偶数且k此时是奇数s[i]变成4;

#include<bits/stdc++.h>
#define debug(a) cout << #a << " " << a << endl
#define LL long long
#define ull unsigned long long
#define PI acos(-1.0)
#define eps 1e-6
const int N=1e5+7;
using namespace std;
char s
;
int main ()
{
//yyy_3y
//freopen("1.in","r",stdin);
LL m,k; scanf("%lld%lld",&m,&k);
scanf("%s",s+1);
int len=strlen(s+1);
for(int i=2;i<=len && k;i++){
if(s[i-1]=='4' && s[i+1]=='7'){
if(s[i]=='4' && !(i&1)){
if(k&1) s[i]='7';
break;
}
else if(s[i]=='7' && !(i&1)) {
if(k&1) s[i]='4';
break;
}
}
if(s[i-1]-'0'==4 && s[i]-'0'==7){
if(i&1) s[i-1]='7';
else s[i]='4';
k--;
}
}
printf("%s",s+1);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  牛客练习赛