Java 개발자 입장 인터뷰에서 다음과 같은 질문을 받았습니다.
두 가지 매개 변수를 취하는 함수를 작성하십시오.
- 텍스트 문서를 나타내는 String
- 반환 할 항목 수를 제공하는 정수
가장 자주 발생하는 단어 인 단어 빈도별로 정렬 된 문자열 목록을 반환하도록 함수를 구현하십시오. 솔루션은 시간에 실행되어야합니다. 여기서 은 문서의 문자 수입니다.
다음은 내가 의사 코드로 대답 한 것입니다 .O 아니라 정렬 때문에 시간입니다. 시간 을 수행하는 방법을 알 수 없습니다 .
wordFrequencyMap = new HashMap<String, Integer>();
words = inputString.split(' ');
for (String word : words) {
count = wordFrequencyMap.get(word);
count = (count == null) ? 1 : ++count;
wordFrequencyMap.put(word, count);
}
return wordFrequencyMap.sortByValue.keys
누군가 알고 있거나 힌트를 줄 수 있습니까?
Hashtable
맞지 않지만 ( StackOverflow에서 요청할 수 있음) 마찬가지로 레거시 Java 인지 여부 는이 사이트의 목적과 관련이 없습니다.