给定一个只包含小写字母的字符串,删除重复的字母,每个字母只出现一次。在所有结果中,输出字典顺序最小的。
来源:互联网 发布:建筑图集软件 编辑:程序博客网 时间:2024/05/21 10:02
本题源自leetcode 316
---------------------------------------------------------------------------------
思路:1 用俩个vector 标记字符在串中的出现的次数,以及这个字符是否访问过。
2 先遍历一遍字符串,统计字符出现的次数
3 第二遍遍历字符,每次访问一个字符都将字符出现的次数减一,如果字符被访问过,直接跳过。否则与结果字符串尾端比较。如果要插入的字符比尾端字符小,而且尾端字符在后面的字符串中还有。就弹出尾端字符,设标记未访问。否则就插入字符。
代码:
string removeDuplicateLetters(string s) { vector<int> vec(256,0); vector<bool> visited(256,0); for(char c : s) vec[c]++; string res = ""; for(char c : s){ vec[c]--; //每次遍历一个字符就将他出现的次数减一 if(visited[c]) //标记是否访问过 continue; //如果结果字符串尾端的字符比将要插入字符大,而且后面字符串中还有这个字符,就弹出。 while(vec[res.back()] && c < res.back()){ visited[res.back()] = false; res.pop_back(); } res += c; visited[c] = true; } return res; }
阅读全文
0 0
- 给定一个只包含小写字母的字符串,删除重复的字母,每个字母只出现一次。在所有结果中,输出字典顺序最小的。
- 在字符串(字母)中找出第一个只出现一次的字母
- 【题目2】给定一个字符串数组,从中找出第一个只出现一次的字母
- (bitmap)给定一个字符串数组,从中找出第一个只出现一次的字母
- 给定一个只包含大写英文字母的字符串,可以用另一个字母替换字符串中的任何字母最多k次。查找包含所有重复字母的最长子字符串的长度,
- 如何在字符串里查找第一个不重复的字母,即只出现一次的最靠前的字母
- 面试题:将一个字符串数组中的字母按照以下规则排列:表中任何单词的首字母与其前面单词的尾字母相同! 要求:字符串只由小写字母构成,且每个字符串长度在2-100之间
- H面试程序(12): 输出字符串中第一个只出现一次的字母
- 找出只出现过一次的字母
- 给定一个字符数组,从中找出第一个只出现一次的字母
- 把一个字符串中所有出现的大写字母都替换成小写字母,同时把小写字母替换成大写字母
- 手动输入一个字符串,仅限小写字母,统计并输出每个字符在字符串中出现的次数,并输出。
- 手动输入一个字符串,仅限小写字母,统计并输出每个字符在字符串中出现的次数,并输出。
- 统计一个字符串中每个字母是否只出现了一次
- 给定一个排序的链接列表,删除所有重复项,使每个元素只显示一次。
- 字典序问题。在数据加密和数据压缩中常需要对特殊的字符串进行编码。给定的字母表A由26个小写字母组成。该字母表产生的升序字符串中字母从左到右出现的次序与字母在字母表中出现的次序相同,且每个字符最多出现1
- 字典序问题。在数据加密和数据压缩中常需要对特殊的字符串进行编码。给定的字母表A由26个小写字母组成。该字母表产生的升序字符串中字母从左到右出现的次序与字母在字母表中出现的次序相同,且每个字符最多出现1
- 微软100题(17)字符串中只出现一次的字母
- Android Studio3.0之后gradle.build中dependencie依赖由compile变为implementation
- [Leetcode从零开刷]344. Reverse String
- 最短路
- ThreadPoolExecutor线程池源码分析
- Kotlin学习---控制语法之if语句
- 给定一个只包含小写字母的字符串,删除重复的字母,每个字母只出现一次。在所有结果中,输出字典顺序最小的。
- 网址收集
- spring-cloud的eurekaserver启动报错找不到主类
- python sqlite 获取表名、表的列名
- java实现输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
- 445. Add Two Numbers II
- 安装anaconda错误:failed to create anaconda menus
- Android5.1系统3.5寸RGB屏调试
- Layui .render() 元素更新记得使用