Menu
CoddyTech

Group Anagrams

Kamu mendapatkan list kata strs. Dua kata merupakan anagram jika huruf-huruf pada salah satunya disusun ulang, dengan setiap huruf digunakan dalam jumlah yang sama. Kelompokkan setiap kata bersama semua anagramnya, lalu kembalikan satu string untuk setiap kelompok: kata-katanya diurutkan secara alfabetis dan dipisahkan dengan satu spasi. Urutkan kelompok secara alfabetis berdasarkan kata pertamanya.

Kata yang berulang dicantumkan dua kali dalam kelompoknya, sedangkan kata yang tidak memiliki anagram membentuk kelompok berisi satu kata. Urutan alfabetis berarti urutan seperti di kamus: aab berada sebelum ab, dan ab sebelum abc.

Fungsi

groupAnagrams(strs: string-array) → string-array
strsstring-array
kata-kata yang dikelompokkan, hanya huruf kecil
Mengembalikanstring-array
satu string per grup: kata-katanya diurutkan dan digabungkan dengan spasi, grup-grup diurutkan berdasarkan kata pertamanya

Batasan

  • 1 ≤ strs.length ≤ 4000
  • 1 ≤ strs[i].length ≤ 8
  • Setiap kata hanya berisi huruf bahasa Inggris kecil.

Contoh

Input
strs = ["listen", "stone", "silent", "notes", "enlist", "onset", "tones", "apple"]
Output
["apple", "enlist listen silent", "notes onset stone tones"]
Penjelasan
enlist, listen, dan silent menggunakan e, i, l, n, s, dan t masing-masing satu kali. notes, onset, stone, dan tones memiliki e, n, o, s, dan t yang sama. apple tidak cocok dengan apa pun dan, sebagai kata pertama, menjadi yang terdepan.
challenge icon

Pertanyaan lanjutan

Jika kata-kata dapat memuat karakter Unicode apa pun, kunci mana yang tetap berfungsi, huruf yang diurutkan atau jumlah huruf, dan apa yang akan kamu ubah di dalamnya?

Reset kode
def groupAnagrams(strs):
    # Tulis kodemu di sini

Tes #1

Tes #2

Tes #3

Argumen

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

Output yang diharapkan

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