CSES - ABC-erot

Tehtäväsi on muodostaa lista, jossa on kaikki nn merkin pituiset merkkijonot, joissa jokainen merkki on A, B tai C ja missään kohdassa ei ole vierekkäin kahta samaa merkkiä. Listan tulee olla aakkosjärjestyksessä.

Voit olettaa, että nn on välillä 1101 \dots 10.

Python

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

def create(n):
    # TODO

if __name__ == "__main__":
    print(create(1)) # [A,B,C]
    print(create(2)) # [AB,AC,BA,BC,CA,CB]
    print(len(create(5))) # 48

Java

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

import java.util.*;

public class ABCDiff {
    public ArrayList<String> create(int n) {
        // TODO
    }

    public static void main(String[] args) {
        ABCDiff a = new ABCDiff();
        System.out.println(a.create(1)); // [A,B,C]
        System.out.println(a.create(2)); // [AB,AC,BA,BC,CA,CB]
        System.out.println(a.create(5).size()); // 48
    }
}