단어 수가 가장 많은 발신자
n
메시지의 채팅 로그가 있습니다. 두 개의 문자열 배열 messages
및 senders
가 제공됩니다. 여기서 messages[i]
는 senders[i]
에서 보낸 메시지입니다.메시지는 선행 또는 후행 공백 없이 단일 공백으로 구분된 단어 목록입니다. 보낸 사람의 단어 수는 보낸 사람이 보낸 총 단어 수입니다. 발신자는 둘 이상의 메시지를 보낼 수 있습니다.
단어 수가 가장 많은 발신자를 반환합니다. 단어 수가 가장 많은 발신자가 둘 이상인 경우 사전순으로 가장 큰 이름을 가진 발신자를 반환합니다.
메모:
"Alice"
및 "alice"
는 별개입니다. 예 1:
입력: 메시지 = ["안녕하세요 userTwooo","안녕 userThree","멋진 하루 앨리스","좋은 날 userThree"], senders = ["앨리스","userTwo","userThree","앨리스"]
출력: "앨리스"
설명: Alice는 총 2 + 3 = 5 단어를 보냅니다.
userTwo는 총 2개의 단어를 보냅니다.
userThree는 총 3개의 단어를 보냅니다.
Alice가 단어 수가 가장 많으므로 "Alice"를 반환합니다.
예 2:
입력: messages = ["leetcode는 모두에게 어떤가요","Leetcode는 연습에 유용합니다"], senders = ["Bob","Charlie"]
출력: "찰리"
설명: Bob은 총 5개의 단어를 보냅니다.
Charlie는 총 5개의 단어를 보냅니다.
가장 많은 단어 수가 동점이므로 사전식으로 더 큰 이름인 Charlie를 보낸 사람을 반환합니다.
제약:
n == messages.length == senders.length
1 <= n <= 104
1 <= messages[i].length <= 100
1 <= senders[i].length <= 10
messages[i]
는 영문 대문자와 소문자로 구성되며 ' '
. messages[i]
의 모든 단어는 하나의 공백으로 구분됩니다. messages[i]
에 선행 또는 후행 공백이 없습니다. senders[i]
는 영문 대문자와 소문자로만 구성됩니다. 해결책:
from collections import Counter
class Solution:
def largestWordCount(self, messages: List[str], senders: List[str]) -> str:
n = len(senders)
ctr = Counter()
for i in range(n):
ctr[senders[i]] += len(messages[i].split())
return max(senders, key = lambda sender: (ctr[sender], sender))
Reference
이 문제에 관하여(단어 수가 가장 많은 발신자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/theabbie/sender-with-largest-word-count-5aa0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)