【刷题】【字符串】加入数字

题面:

  有一个长度不超过20位的整数(以字符串的形式给出), 同时给出一个加入数字p,p可加入在整数的任何位置。加入之 后,再删去一个数字,使剩下来的数最大。 例如:有整数: 1 2 3 4 5 6 7 8, P 为 5 得到的结果: 5 2 3 4 5 6 7 8 说明: 1 2 3 4 5 6 7 8 加入5之后成为: 5 1 2 3 4 5 6 7 8 再删去1最后得到: 5 2 3 4 5 6 7 8

【输入说明】

   两行,第一行一个字符串,第二行一个正整数P

【输出说明】

  经过处理操作后,得到的满足要求的数。

【样例输入】12345678 5

【样例输出】 52345678

 

分析:贪心

 

#include<bits/stdc++.h>
using namespace std;
string s,ch;

int main()
{
    cin>>s>>ch;
    int len=s.length();
    while(ch[0]<'0' || ch[0]>'9' ) ch=getchar();
    
    int i;
    for(i=0;i<len;i++)
        if(s[i]<ch[0] ) break;    
    s.insert(i,ch);//这里要求insert字符串,不可为单字符 
    for(i=1;i<len;i++)
        if(s[i]>s[i-1] ) break;
    s.erase(i-1,1);//第二位必须写1,表明删一个 
    cout<<s;
    return 0;
}

 

posted @ 2022-02-17 23:50  心若笺诗  阅读(278)  评论(0编辑  收藏  举报