【刷题】【字符串】加入数字
题面:
有一个长度不超过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; }