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 לא תואמת לאף אחת, ולפי המילה הראשונה היא מובילה.
challenge icon

שאלת המשך

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

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

בדיקה #1

בדיקה #2

בדיקה #3

ארגומנט

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

הפלט הצפוי

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