【C++】2023.2.11打卡第十天_31(字符串)

三百题蓝桥省一战神 2023-02-11 16:37:56

删除字符

题目描述

给定一个单词,请问在单词中删除 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;
}

总结

一、题目分析

直接暴力做法,不使用删除字符函数很难做出来。

二、知识点总结

erase()是STL提供的容器中比较常用的方法之一,它的功能是删除容器中的某些元素,其中它的函数原型如下:

有两个参数,且参数类型都是size_t型:

1

string& erase ( size_t pos = 0, size_t n = npos );

功能是:删除容器中从pos位置开始的n个元素。返回值是经过删除操作后的容器。

也就是说,erase函数删除了某个字符同时返回了剩下的字符串,加上while和for搭配就能实现erase的妙用、

...全文
12 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

30,348

社区成员

发帖
与我相关
我的任务
社区描述
打造最热爱学习的高校社区,帮助大家提升计算机领域知识,带大家打比赛拿奖,提高自我,希望大家共同创造良好的社区氛围。
社区管理员
  • 川川菜鸟
  • 亡心灵
  • 星辰菜鸟
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

监督大家学习,每日学习打卡,以投稿形式打卡。扫码关注公众号,可加入粉丝群和领取大量资源。

试试用AI创作助手写篇文章吧