[leetcode] 가장 흔 한 단어 [javascript]

5913 단어 leetcode
https://leetcode-cn.com/problems/most-common-word/
묘사 하 다.
단락 (paragraph) 과 사용 하지 않 는 단어 목록 (banned) 을 지정 합 니 다.목록 에 없 는 단 어 를 되 돌려 줍 니 다.문 제 는 최소한 한 단어 가 비활성화 목록 에 있 지 않 고 답 이 유일 하 다 는 것 을 보증한다.목록 에 있 는 단 어 를 소문 자로 표시 하지 않 고 문장 부 호 를 포함 하지 않 습 니 다.단락 의 단 어 는 대소 문 자 를 구분 하지 않 는 다.답 은 모두 소문 자 이다.예시:
  : 
paragraph = "Bob hit a ball, the hit BALL flew far after it was hit."
banned = ["hit"]
  : "ball"
  : 
"hit"    3 ,          。
"ball"    2  (          2 ),              ,           。 
  ,                ,        (           ,    "ball,"), 
"hit"       ,         ,          。

설명:
  • 1 <= <= 1000 .
  • 1 <= <= 100 .
  • 1 <= <= 10 .
  • 답 은 유일한 것 이 고 소문 자 paragraph 에서 대문자 라 도 특정한 명사 라 도 답 은 소문 자 이다.)
  • paragraph 자모, 빈 칸 과 아래 문장 부호 만 포함 !?',;.
  • 연결 문자 가 없 거나 연결 문자 가 있 는 단 어 는 존재 하지 않 습 니 다.
  • 단어 에는 알파벳 만 포함 되 어 있 고 생략 번호 나 다른 문장 부호 가 나타 나 지 않 습 니 다.

  • 분석 하 다.
    먼저 문장 부 호 를 걸 러 내 고 소문 자 를 바 꾼 다음 빈 칸 에 따라 배열 로 나 눕 니 다.
    이 어 전체 배열 을 옮 겨 다 니 며 banned 에 현재 옮 겨 다 니 는 값 이 있 으 면 contine 합 니 다.
    각 값 이 나타 나 는 횟수 를 대상 으로 저장 합 니 다.
    마지막 으로 이 대상 을 옮 겨 다 니 며 최대 값 을 찾 습 니 다.
    var mostCommonWord = function(paragraph, banned) {
      paragraph = paragraph.replace(/[\.,\?;\'\!]/g, ' ').toLocaleLowerCase().split(' ')
      let obj = {}, max = {value: 0}
      for (let i = 0; i < paragraph.length; i++) {
        if (paragraph[i] === '' || banned.includes(paragraph[i])) continue
        obj[paragraph[i]] = obj[paragraph[i]] ? obj[paragraph[i]] + 1 : 1
      }
      for (let i in obj) {
        if (obj[i] >= max.value) {
          max.key = i
          max.value = obj[i]
        }
      }
      return max.key
    };
    

    좋은 웹페이지 즐겨찾기