当前位置:网站首页>316. 去除重复字母
316. 去除重复字母
2022-06-23 06:14:00 【毕业_设计】
前言
C++是一种计算机高级程序设计语言,由C语言扩展升级而产生 ,最早于1979年由本贾尼·斯特劳斯特卢普在AT&T贝尔工作室研发。
C++既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计。
C++拥有计算机运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。
Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等 。
Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆 于1990 年代初设计,作为一门叫做ABC语言的替代品。Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。
Python解释器易于扩展,可以使用C语言或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。Python 也可用于可定制化软件中的扩展程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的源码或机器码。
2021年10月,语言流行指数的编译器Tiobe将Python加冕为最受欢迎的编程语言,20年来首次将其置于Java、C和JavaScript之上。
描述
给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证 返回结果的字典序最小(要求不能打乱其他字符的相对位置)。
示例 1:
输入:s = "bcabc"
输出:"abc"
示例 2:
输入:s = "cbacdcbc"
输出:"acdb"
class Solution {
public String removeDuplicateLetters(String s) {
boolean[] vis = new boolean[26];
int[] num = new int[26];
for (int i = 0; i < s.length(); i++) {
num[s.charAt(i) - 'a']++;
}
StringBuffer sb = new StringBuffer();
for (int i = 0; i < s.length(); i++) {
char ch = s.charAt(i);
if (!vis[ch - 'a']) {
while (sb.length() > 0 && sb.charAt(sb.length() - 1) > ch) {
if (num[sb.charAt(sb.length() - 1) - 'a'] > 0) {
vis[sb.charAt(sb.length() - 1) - 'a'] = false;
sb.deleteCharAt(sb.length() - 1);
} else {
break;
}
}
vis[ch - 'a'] = true;
sb.append(ch);
}
num[ch - 'a'] -= 1;
}
return sb.toString();
}
}
边栏推荐
- Idea automatically generates serialVersionUID
- What are the pension financial products in 2022? Low risk
- RFID数据安全性实验:C#可视化实现奇偶校验、CRC冗余校验、海明码校验
- Xiaobai must see in investment and wealth management: illustrated fund buying and selling rules
- MySQL index
- 2121. sum of intervals of the same elements - hash table method
- [saison de remise des diplômes · technologie agressive er] votre choix, agenouillez - vous et partez
- QT method of compiling projects using multithreading
- Badly placed ()‘s 问题
- 产品-Axure9(英文版),原型设计 制作下拉二级菜单
猜你喜欢

redux Actions may not have an undefined “type“ property. Have you misspelled a constant?

Some difficulties in making web pages

Idea automatically generates serialVersionUID

小白投资理财必看:图解基金买入与卖出规则

Xxl-sso enables SSO single sign on

MySQL basic query

网页制作存在的一些难点

XXL-SSO 实现SSO单点登录

Easy EDA learning notes 09 esp32-wroom-32e module esp32-devkitc-v4 development board one click download circuit

js 判断两个数组增加和减少的元素
随机推荐
Why can't the index of JS array use negative numbers
产品-Axure9(英文版),原型设计 制作下拉二级菜单
网页制作存在的一些难点
1161 Merging Linked Lists
【毕业季·进击的技术er】自己的选择,跪着也要走
2022年养老理财产品有哪些?风险小的
mysql 函数
Verilog语法讲解
mysql 优化
MySQL重做日志 redo log
746. climbing stairs with minimum cost - Dynamic Planning
Mongodb record
746. 使用最小花费爬楼梯-动态规划
mongodb 记录
Idea installing the cloudtoolkit plug-in
XML schema record
Wechat applet - Global Monitoring of certain attribute changes of GlobalData, such as monitoring of network state switching
【畢業季·進擊的技術er】自己的選擇,跪著也要走
cmder
core. What is JS ---kalrry