题目描述
这道题跟letcode上第316题特别想
https://leetcode.com/problems/remove-duplicate-letters/
只不过letcode上比这道题难
样例
import java.util.Scanner;
public class Main{
public static void main(String args[]){
Scanner sc=new Scanner(System.in);
String str=sc.next();
str=str.toLowerCase();
int count[]=new int[26];
for(int i=0; i<str.length(); i++)
count[str.charAt(i)-'a']++;//统计每个字符出现次数
int pos=0;
for(int i=0; i<str.length(); i++){
if(str.charAt(i) < str.charAt(pos))
pos = i;
if(--count[str.charAt(i)-'a'] == 0)
break;//当一个字符计数到0时,表示该字符必须出现
}
System.out.println(str.charAt(pos));
}
}
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度分析:blablabla
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度分析:blablabla
C++ 代码
blablabla