Menu
CoddyTech

Group Anagrams

בינוניגיבובמיוןpython iconjava iconcpp iconc iconjs icon+10

ניתנת לך רשימת מילים strs. שתי מילים הן אנגרמות כאשר אחת היא סידור מחדש של האחרת: אותן אותיות, כשכל אחת מופיעה אותו מספר פעמים. שים כל מילה בקבוצה עם כל האנגרמות שלה, והחזר מחרוזת אחת לכל קבוצה: מילות הקבוצה בסדר אלפביתי, מופרדות ברווח יחיד. סדר את הקבוצות בסדר אלפביתי לפי המילה הראשונה שלהן.

מילה שמופיעה פעמיים תופיע פעמיים בקבוצה שלה, ומילה שאין לה אנגרמה תיצור קבוצה של מילה אחת. סדר אלפביתי פירושו סדר מילוני: aab מופיעה לפני ab, ו-ab לפני abc.

פונקציה

groupAnagrams(strs: string-array) → string-array
strsstring-array
המילים לקיבוץ, אותיות קטנות בלבד
מחזירהstring-array
מחרוזת אחת לכל קבוצה: המילים שלה ממוינות ומחוברות ברווחים, והקבוצות מסודרות לפי המילה הראשונה שלהן

אילוצים

  • 1 ≤ strs.length ≤ 4000
  • 1 ≤ strs[i].length ≤ 8
  • כל מילה מכילה אותיות אנגליות קטנות בלבד.

דוגמאות

קלט
strs = ["listen", "stone", "silent", "notes", "enlist", "onset", "tones", "apple"]
פלט
["apple", "enlist listen silent", "notes onset stone tones"]
הסבר
המילים enlist, listen ו־silent משתמשות כל אחת באותיות e, i, l, n, s ו־t פעם אחת. המילים notes, onset, stone ו־tones חולקות את האותיות e, n, o, s ו־t, ו־apple אינה תואמת לשום דבר. לפי המילה הראשונה, הקבוצות מופיעות בסדר apple, enlist, notes.

lock icon+15 בדיקות נסתרות בשליחה

challenge icon

שאלת המשך

נניח שהמילים יכולות להכיל כל תו Unicode במקום 26 אותיות קטנות. איזה משני המפתחות, אותיות ממוינות או ספירת אותיות, עדיין יעבוד, ומה היית משנה בו?

איפוס הקוד
def groupAnagrams(strs):
    # כתבו כאן את הקוד
מקרי בדיקה

מקרה 1

מקרה 2

מקרה 3

קלט

strs = ["listen", "stone", "silent", "notes", "enlist", "onset", "tones", "apple"]

צפוי

["apple", "enlist listen silent", "notes onset stone tones"]