CSES - Anagrammit

Tehtäväsi on muodostaa lista, jossa on kaikki annetun merkkijonon anagrammit eli kaikki merkkijonot, jotka voidaan muodostaa merkkijonon merkeistä. Listan tulee olla aakkosjärjestyksessä.

Voit olettaa, että merkkijono muodostuu merkeistä az ja siinä on enintään 8 merkkiä.

Python

Toteuta tiedostoon anagrams.py funktio create, joka muodostaa listan.

def create(s):
    # TODO

if __name__ == "__main__":
    print(create("ab")) # [ab,ba]
    print(create("abac")) # [aabc,aacb,abac,abca,acab,acba,baac,baca,bcaa,caab,caba,cbaa]
    print(len(create("aybabtu"))) # 1260

Java

Toteuta tiedostoon Anagrams.java metodi create, joka muodostaa listan.

import java.util.*;

public class Anagrams {
    public ArrayList<String> create(String s) {
        // TODO
    }

    public static void main(String[] args) {
        Anagrams a = new Anagrams();
        System.out.println(a.create("ab")); // [ab,ba]
        System.out.println(a.create("abac")); // [aabc,aacb,abac,abca,acab,acba,baac,baca,bcaa,caab,caba,cbaa]
        System.out.println(a.create("aybabtu").size()); // 1260
    }
}