题意: 给一个字符串S,和 K 两个字符的dis == 其ASCII 码值得绝对值,
要求构造一个字符串S1是的sum = dis(S[i] - S1[i]) (i=0,,1 ,,,,,n ,) ==k ;
思路: 贪心,使得前面以最大差出现,后面保持一致即可
#include<bits/stdc++.h>
using namespace std;
string s,s1;
int main()
{
int n,m;
scanf("%d%d",&n,&m);
cin>>s;
for(int i =0; i<s.length(); i++)
{
if(m==0)
{
s1+= s[i];
continue;
}
int x = s[i]-'a';
int y = 'z' - s[i];
if(x>y)
{
if(m>=x)
{
s1 += 'a';
m-=x;
}
else
{
s1+= s[i]-m;
m = 0;
}
}
else
{
if(m>=y)
{
s1+='z';
m-=y;
}
else
{
s1+=s[i]+m;
m = 0;
}
}
}
if(m!=0)
{
cout<<"-1\n"<<endl;
return 0;
}
cout<<s1<<endl;
}