CSES - ABC-erot

Tehtäväsi on muodostaa lista, jossa on kaikki n 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ä n on välillä 1 \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
    }
}