唐山网站建设哪家专业,关于怎么做网站,那个公司建站好,semi是什么意思文章目录1. 题目2. 解题1. 题目
描述
给定一个字符串str#xff0c;现在要对该字符串进行删除操作#xff0c; 保留字符串中的 k 个字符且相对位置不变#xff0c;并且使它的字典序最小#xff0c;返回这个子串。
示例
例1:
输入:strfskacsbi,k2
输出:现在要对该字符串进行删除操作 保留字符串中的 k 个字符且相对位置不变并且使它的字典序最小返回这个子串。
示例
例1:
输入:strfskacsbi,k2
输出:ab
解释:“ab“是str中长度为2并且字典序最小的子串例2:
输入:strfsakbacsi,k3
输出:aac来源https://tianchi.aliyun.com/oj/141758389886413149/160295184768372893
2. 解题
class Solution {
public:/*** param str: the string* param k: the length* return: the substring with the smallest lexicographic order*/string deleteChar(string str, int k) {// Write your code here.int n str.size();if(k n)//不用删return str;int del n-k;//要删除的个数stackchar stk;for(int i 0; i n; i){while(!stk.empty() stk.top() str[i] del){ //还可删del 0 且 前面的字符比当前的大删除之stk.pop();del--;}stk.push(str[i]);}while(del--)//还没删完的从尾巴开始删stk.pop();string ans;while(!stk.empty()){ans stk.top() ans;stk.pop();}return ans;}
};50ms C 我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号Michael阿明一起加油、一起学习进步