Wyzwanie:
Na podstawie danych wejściowych macierzy określ ilość przekątnych i przekątnych ze zduplikowanymi liczbami.
Więc jeśli mamy taką matrycę:
[[aa,ab,ac,ad,ae,af],
[ba,bb,bc,bd,be,bf],
[ca,cb,cc,cd,ce,cf],
[da,db,dc,dd,de,df]]
Wszystkie przekątne i anty przekątne byłyby:
[[aa],[ab,ba],[ac,bb,ca],[ad,bc,cb,da],[ae,bd,cc,db],[af,be,cd,dc],[bf,ce,dd],[cf,de],[df],
[af],[ae,bf],[ad,be,cf],[ac,bd,ce,df],[ab,bc,cd,de],[aa,bb,cc,dd],[ba,cb,dc],[ca,db],[da]]
Przykład:
[[1,2,1,2,1,2],
[1,2,3,4,5,6],
[6,5,4,3,2,1],
[2,1,2,1,2,1]]
Wszystkie przekątne i anty przekątne byłyby:
[[1],[2,1],[1,2,6],[2,3,5,2],[1,4,4,1],[2,5,3,2],[6,2,1],[1,2],[1],
[2],[1,6],[2,5,1],[1,4,2,1],[2,3,3,2],[1,2,4,1],[1,5,2],[6,1],[2]]
Usuwanie wszystkich przekątnych i przekątnych zawierających tylko unikalne liczby:
[[2,3,5,2],[1,4,4,1],[2,5,3,2],[1,4,2,1],[2,3,3,2],[1,2,4,1]]
Tak więc wynikiem jest liczba przekątnych i przekątnych zawierających zduplikowane liczby:
6
Zasady konkursu:
- Jeśli macierz wejściowa jest pusta, zawiera tylko 1 liczbę lub zawiera tylko unikalne liczby w całej macierzy, wynik jest zawsze taki sam
0. - Dane wejściowe z pewnością zawierają tylko cyfry dodatnie
[1,9](chyba że są całkowicie puste). - Matryca zawsze będzie prostokątna (tzn. Wszystkie rzędy mają tę samą długość).
- I / O jest elastyczny. Dane wejściowe można traktować jako listę liczb całkowitych, tablicę liczb całkowitych 2D lub obiekt Matrix, jako ciąg znaków itp. Itp. Można również przyjąć jeden lub oba wymiary macierzy jako dodatkowe dane wejściowe jeśli pozwoliłoby to zaoszczędzić bajty w wybranym języku.
Główne zasady:
- To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach.
Nie pozwól, aby języki gry w golfa zniechęcały Cię do publikowania odpowiedzi w językach niekodujących golfa. Spróbuj znaleźć możliwie najkrótszą odpowiedź na „dowolny” język programowania. - Do odpowiedzi mają zastosowanie standardowe reguły z domyślnymi regułami We / Wy , więc możesz używać STDIN / STDOUT, funkcji / metody z odpowiednimi parametrami i typem zwracanych, pełnych programów. Twoja decyzja.
- Domyślne luki są zabronione.
- Jeśli to możliwe, dodaj link z testem kodu (tj. TIO ).
- Zalecane jest również dodanie wyjaśnienia do odpowiedzi.
Przypadki testowe:
Input: Output:
[[1,2,1,2,1,2], 6
[1,2,3,4,5,6],
[6,5,4,3,2,1],
[2,1,2,1,2,1]]
[[]] 0
[[1,2], 0
[3,4]]
[[1,1], 2
[1,1]]
[[9,9,9], 6
[9,9,9],
[9,9,9]]
[[7,7,7,7], 8
[7,7,7,7],
[7,7,7,7]]
[[1,1,1], 1
[2,3,4],
[2,5,1]]
[[1,8,4,2,9,4,4,4], 12
[5,1,2,7,7,4,2,3],
[1,4,5,2,4,2,3,8],
[8,5,4,2,3,4,1,5]]
[[1,2,3,4], 4
[5,6,6,7],
[8,6,6,9],
[8,7,6,5]]
rowicoldo mojej listy „ekstremalnie sytuacyjnych funkcji”. Naprawdę sprytne rozwiązanie.