3403 - Find the Lexicographically Largest String From the Box I
info
- 문제 보기: 3403 - Find the Lexicographically Largest String From the Box I
- 소요 시간: 25분 49초
- 풀이 언어:
java
- 체감 난이도: 3️⃣
- 리뷰 횟수: ✅
풀이 키워드
스포주의
문자열
풀이 코드
info
- 메모리: 52700 KB
- 시간: 10 ms
class Solution {
public String answerString(String word, int numFriends) {
if (numFriends == 1) return word; // corner case
// lex order first, desc length order then
final int n = word.length();
final int mxLen = word.length() - (numFriends-1);
Set<String> candSet = new TreeSet<>(Collections.reverseOrder());
char mxChar = 'a';
char[] wordArr = word.toCharArray();
for (char ch : wordArr) mxChar = mxChar < ch ? ch : mxChar;
for (int i = 0; i < n; ++i) {
if (wordArr[i] != mxChar) continue;
int j = Math.min(i+mxLen, n);
candSet.add(word.substring(i, j));
}
return candSet.iterator().next();
}
}