C语言中删除重复字母,删除C ++中的重复字母
假设我们有一个仅包含小写字母的字符串。我们必须删除所有重复的字母,以便所有字母仅出现一次。并且我们必须以最小的字典顺序显示结果。因此,如果输入像“ abccb”,那么结果将是“ abc”
为了解决这个问题,我们将遵循以下步骤-ans:=一个空字符串
定义一个堆栈st
在大小为26的onStack上定义一个数组
定义一张映射
n:= s的大小
用于初始化i:= 0,当i
用于初始化i:= 0,当i
从st删除项目
跳到下一个迭代,忽略以下部分
定义一个数组x = s,其大小为i
递减m [x] 1
如果onStack [x-'a']不为零,则
当st不为空且x
将x插入st
onStack [x-'a']:= true
当(st为空)为false时,执行-x:= st的顶部元素
从st删除项目
ans = ans + x
反转阵列转速
返回ans
示例
让我们看下面的实现以更好地理解-#include
using namespace std;
void print_vector(vector v){
cout <
for(int i = 0; i
cout <
}
cout <
}
class Solution {
public:
string removeDuplicateLetters(string s) {
string ans = "";
stack st;
vector onStack(26);
map m;
int n = s.size();
for(int i = 0; i
m[s[i]]++;
}
for(int i = 0; i
char x = s[i];
m[x]--;
if(onStack[x - 'a'])continue;
while(!st.empty() && x
onStack[st.top() - 'a'] = false;
st.pop();
}
st.push(x);
onStack[x - 'a'] = true;
}
while(!st.empty()){
char x = st.top();
st.pop();
ans += x;
}
reverse(ans.begin(), ans.end());
return ans;
}
};
main(){
Solution ob;
cout <
}
输入项“abccb”
输出结果“abc”
C语言中删除重复字母,删除C ++中的重复字母相关推荐
- c语言中怎样删除字符串中的字母,删除字符串中的字符(C语言)
题目: 编程序将给定字符串中指定字符删除.要求删除指定字符后原字符串不能留下空位置,字符串和指定字符均由键盘输入 基本思路 将字符串与要删除的字符进行比较,若为相同字符,则将字符串中的该字符替换为原字 ...
- C语言试题六十二之请编写函数fun除了字符串前导和尾部的*号之外,将串中其他*号全部删除。形参h已指向字符串第一个字母,形参p已指向字符串中最后一个字母。在编写程序时,不得使用c语言提供的字符串函数。
1. 题目 请编写函数fun除了字符串前导和尾部的*号之外,将串中其他*号全部删除.形参h已指向字符串第一个字母,形参p已指向字符串中最后一个字母.在编写程序时,不得使用c语言提供的字符串函数. 比如 ...
- c语言去掉数组中重复的,C语言删除无序整型数组中的重复元素及时间复杂度
数组重复的问题在任何编程中都会有碰到了,这里介绍C语言删除无序整型数组中的重复元素及时间复杂度,希望对各位有帮助. 遇到一个题,大概要求是写一个函数处理来去掉一个无序的整型数组(例如int i_arr ...
- 87.假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其他*号全部删除。在编写函数时,不得使用C语言提供的字符串函数。
87.假定输入的字符串中只包含字母和号.请编写函数fun,它的功能是:除了字符串前导的号之外,将串中其他*号全部删除.在编写函数时,不得使用C语言提供的字符串函数. 例如,若字符串中的内容为****A ...
- 6.3【字符数组编程】假定输入的字符串中只包含字母和*号。请编写子函数实现:除了字符串前导的*号之外,将串中其他*号全部删除。
#include<stdio.h> #include<string.h> #define N 100 int main() {char st[N],s[N];int i,j,l ...
- 编写一个程序,实现将c语言源程序中的注释全部删除
<程序设计基础-c语言>杨莉 刘鸿翔 ISBN-978-7-03-032903-5 p257 习题8 6.编写一个程序,实现将c语言源程序中的注释全部删除 #include<stdl ...
- mysql删除重复文章标题_MySQL中查询、删除重复记录的方法大全
前言 本文主要给大家介绍了关于MySQL中查询.删除重复记录的方法,分享出来供大家参考学习,下面来看看详细的介绍: 查找所有重复标题的记录: 一.查找重复记录 1.查找全部重复记录 2.过滤重复记录( ...
- mysql删除重复的判断_MySQL中查询、删除重复记录一共有多少种方法?
前言 本文主要给大家介绍了关于MySQL中查询.删除重复记录的方法,分享出来供大家参考学习,下面来看看详细的介绍: 查找所有重复标题的记录: select title,count(*) as coun ...
- java——定义一个功能将ArrayList 集合中的重复元素删除(java集合七)
定义一个功能将ArrayList 集合中的重复元素删除 ArrayList 集合中是允许储存重复元素的 import java.util.ArrayList; import java.util.Ite ...
- c++删除数组中重复元素_PG13中的功能—B树索引中的重复数据删除
PostgreSQL 13 Beta 1版本于2020年5月21日发布,PostgreSQL 13 Beta 2版本于2020年6月25日发布.虽然Beta 版本中依旧包含一些错误,但是它总是几乎涵盖 ...
最新文章
- 158行Python代码复现:DeepMind提图像生成的递归神经网络DRAW
- 使用docker安装部署Spark集群来训练CNN(含Python实例)
- Python Django Cookie的设置和获取相关属性
- python spacy [E050] Can't find model 'en_core_web_sm'
- 吴恩达深度学习5.2练习_Sequence Models_Operations on word vectors
- apache添加php支持
- 编解码格式 -- AAC
- 在Windows server 2019 Core 版本上安装SQL2016
- 微信降级adb备份android7.0,微信自动帮你更新7.0了?简单两步轻松降级
- 暴风酷播云二期配置_暴风播酷云二期拆解
- 固定效应还是随机效应?
- 【TED ON FLEX】支持flashplayer的RIBBIT系统
- systemd 知:介绍
- 关于servlet和jsp的学习总结二(详细)
- Excel学习日记:L33-二八法则的神奇图表-柏拉图(帕累托图)
- QQmail Multiple Xss Vulnerabilities
- 桌面云服务器联想,联想云桌面系统助力四川大学搭建智慧课堂
- JS逆向加密——美团店铺详情_token参数
- IBM AppScan 安全扫描报告中部分问题的解决办法
- 服务器芯片能降低制程吗,主流移动芯片盘点 架构与制程决定成败