Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

회사 이름에서 가장 많이 발생하는 세 글자를 찾는 Python 프로그램

<시간/>

회사 이름이 문자열이라고 가정합니다. 우리는 회사 이름에서 가장 흔한 세 글자를 찾아 다음 규칙에 따라 표시해야 합니다 -

  • 가장 자주 나오는 세 글자 선택
  • 내림차순으로 정렬
  • 일부 문자의 빈도가 같으면 알파벳 순서로 사용

따라서 입력이 s ="TUTORIALSPOINT"와 같으면 출력은 [[3, 'T'], [2, 'I'], [2, 'O']]

가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • x :=s의 문자와 문자 빈도를 포함하는 지도
  • res :=새 목록
  • x의 각 i에 대해 다음을 수행합니다.
    • ret에 쌍(x[i], i) 삽입
  • res :=알파벳순으로 정렬된 후의 res
  • res :=역순으로 빈도를 기준으로 정렬된 후의 res
  • res에서 처음 세 항목 반환

더 나은 이해를 위해 다음 구현을 살펴보겠습니다.

from collections import Counter
def solve(s):
   x = Counter(s)
   res = []

   for i in x:
      res.append([x[i], i])

   res = sorted(res, key=lambda cnt: cnt[1])
   res = sorted(res, key=lambda cnt: cnt[0], reverse=True)

   return res[:3]

s = "TUTORIALSPOINT"
print(solve(s))

입력

"TUTORIALSPOINT"

출력

[[3, 'T'], [2, 'I'], [2, 'O']]