Every day a leetcode
题目来源:1881. 插入后的最大值
解法:贪心
n有两种情况:
- n大于0时,把x插在第一个比x小的数之前
- n小于0时,把x插在第一个比x大的数之前
代码:
char * maxValue(char * n, int x){
int len=strlen(n);
char *ans;
ans=(char*)malloc((len+2)*sizeof(char));
int index=0;
bool insert=false;
if(n[0] == '-')
{
ans[index++]='-';
for(int i=1;i<len;i++)
{
int cur=n[i]-'0';
if(insert == false && cur>x)
{
ans[index++]=x+'0';
insert=true;
}
ans[index++]=n[i];
}
}
else
{
for(int i=0;i<len;i++)
{
int cur=n[i]-'0';
if(insert == false && cur<x)
{
ans[index++]=x+'0';
insert=true;
}
ans[index++]=n[i];
}
}
if(insert == false) ans[index++]=x+'0';
ans[index]='\0';
return ans;
}
结果: