leetcode 140 주 경기 네 번 째 문제 5086. 서로 다른 문자 의 최 자식 서열
예제 2: 입력: "abcd" 출력: "abcd"
예제 3: 입력: "ecbacba" 출력: "eacb"
예제 4: 입력: "leetcode" 출력: "letcod"
귀 찮 습 니 다. 이번 주 경기 문 제 는 매우 느리게 풀 었 습 니 다. 이 문 제 는 상위 권 에 있 는 자바 코드 libofeng 을 풀 지 못 했 습 니 다. 뜻 을 이해 한 후에 자신 이 알고리즘 을 썼 습 니 다. 사실은 문제 의 뜻 이 매우 간단 합 니 다. 가장 먼저 끝 난 자 모 를 찾 았 습 니 다. 그리고 이 단락 에서 가장 작은 자 모 는 바로 첫 번 째 자모 입 니 다. 예 를 들 어 bcdgabcd 가 가장 먼저 끝 난 것 은 'g' 이 고 그 전에 가장 작은 것 은 'b' 입 니 다.그래서 첫 번 째 는 반드시 'b' 이다.그리고 그 다음 문자열 코드 를 옮 겨 다 니 면서
public String smallestSubsequence(String text) {
if (text.isEmpty())
return "";
int[] zimuN = new int[26];
for (int i = 0; i < text.length(); i++)
zimuN[text.charAt(i) - 'a']++;
char minChar = 'z';
int minIndex = 0;
for (int i = 0; i < text.length(); i++) {
if (text.charAt(i) < minChar) {
minChar = text.charAt(i);
minIndex = i;
}
if (--zimuN[text.charAt(i)-'a'] == 0) {
return minChar
+ smallestSubsequence(text.substring(minIndex)
.replaceAll(minChar + "", ""));
}
}
return "";
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Dubbo (2): zookeeper 등록 센터Zookeeper 는 Apacahe Hadoop 의 하위 프로젝트 로 트 리 형태의 디 렉 터 리 서비스 로 푸 시 변경 을 지원 하 며 Dubbo 서비스의 등록 센터 로 적합 하 며 산업 강도 가 높 아 생산 환경...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.