30,228
社区成员




给定一个单词,请问在单词中删除 t 个字母后,能得到的字典序最小的单词是什么?
输入的第一行包含一个单词,由大写英文字母组成。
第二行包含一个正整数 t。
其中,单词长度不超过 100,t 小于单词长度。
输出一个单词,表示答案。
示例 1
输入
LANQIAO
3
输出
AIAO
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
int main()
{
int t;
string s;
cin>>s;
cin>>t;
while(t--)
{
for(int i=0;i<s.length()-1;i++)
{
if(s[i]>s[i+1])
{
s.erase(i,1);
break;
}
}
}
cout<<s<<endl;
return 0;
}
一、题目分析
直接暴力做法,不使用删除字符函数很难做出来。
二、知识点总结
有两个参数,且参数类型都是size_t型:
1 |
|
功能是:删除容器中从pos位置开始的n个元素。返回值是经过删除操作后的容器。
也就是说,erase函数删除了某个字符同时返回了剩下的字符串,加上while和for搭配就能实现erase的妙用、