Otrzymasz tablicę i musisz zwrócić liczbę całkowitą, która występuje więcej niż jeden raz.
[234, 2, 12, 234, 5, 10, 1000, 2, 99, 234]
Będzie to powrót 2, ponieważ każdy 234
i 2
pojawić się więcej niż jeden raz.
[234, 2, 12, 234]
[2, 12, 234, 5, 10, 1000, 2]
Lista nigdy nie będzie dłuższa niż 100 000 liczb całkowitych, a liczby całkowite na liście zawsze będą zawierać się w przedziale od -100 000 do 100 000.
Liczby całkowite należy liczyć, jeśli występują więcej niż jeden raz, więc jeśli liczba całkowita wystąpi 3 razy, nadal będzie liczona jako jedna powtórzona liczba całkowita.
Przypadki testowe
[1, 10, 16, 4, 8, 10, 9, 19, 2, 15, 18, 19, 10, 9, 17, 15, 19, 5, 13, 20] = 4
[11, 8, 6, 15, 9, 19, 2, 2, 4, 19, 14, 19, 13, 12, 16, 13, 0, 5, 0, 8] = 5
[9, 7, 8, 16, 3, 9, 20, 19, 15, 6, 8, 4, 18, 14, 19, 12, 12, 16, 11, 19] = 5
[10, 17, 17, 7, 2, 18, 7, 13, 3, 10, 1, 5, 15, 4, 6, 0, 19, 4, 17, 0] = 5
[12, 7, 17, 13, 5, 3, 4, 15, 20, 15, 5, 18, 18, 18, 4, 8, 15, 13, 11, 13] = 5
[0, 3, 6, 1, 5, 2, 16, 1, 6, 3, 12, 1, 16, 5, 4, 5, 6, 17, 4, 8] = 6
[11, 19, 2, 3, 11, 15, 19, 8, 2, 12, 12, 20, 13, 18, 1, 11, 19, 7, 11, 2] = 4
[6, 4, 11, 14, 17, 3, 17, 11, 2, 16, 14, 1, 2, 1, 15, 15, 12, 10, 11, 13] = 6
[0, 19, 2, 0, 10, 10, 16, 9, 19, 9, 15, 0, 10, 18, 0, 17, 18, 18, 0, 9] = 5
[1, 19, 17, 17, 0, 2, 14, 10, 10, 12, 5, 14, 16, 7, 15, 15, 18, 11, 17, 7] = 5
code-golf
array-manipulation
jayko03
źródło
źródło
Once it counts the repetition, don't count again
? Ponadto, ponieważ chcemy znaleźć powtórzenie określonej liczby całkowitej, skąd mielibyśmy wiedzieć, której liczby całkowitej szukać, jeśli jej nie otrzymamy? Wreszcie przypadki testowe są nieco mylące; które są wyjściowe, a które wejściowe?Odpowiedzi:
R , 20 bajtów
Czy o to ci chodzi? Używa
table
do zliczania wystąpień każdej zscan
wartości wejściowych. Sprawdza, czy liczba wynosi> 1 i sumuje wartości rzeczywiste.Wypróbuj online!
źródło
duplicated
pierwszym miejscu - pokornytable
jest tak przydatny do gry w golfa!Haskell , 42 bajty
Wypróbuj online! Nadużywa faktu, że liczby całkowite na liście mają gwarantowane wartości w zakresie od -100 do 100 000.
źródło
Bash + coreutils, 18
Wypróbuj online!
źródło
APL (Dyalog Unicode) ,
98 bajtów SBCS-1 dzięki ngn
Anonimowa ukryta funkcja prefiksu.
Wypróbuj online!
+/
suma1<
czy 1 jest mniejsze niż…
⌸
Dla każdego unikalnego elementu:⊢∘
ignorując rzeczywisty unikalny element,≢
liczba jego wystąpieńźródło
{1<≢⍵}⌸
->1<⊢∘≢⌸
C (brzęk)
17511795 bajtówWypróbuj online!
Po raz pierwszy przesłałem jeden z nich, więc daj mi znać, jeśli występują problemy z formatowaniem lub coś w tym stylu.
Aktualizacje z komentarzy:
oryginalne zgłoszenie
źródło
d,i;c(*a,*b){return*a-*b;}r(l[],m){qsort(l,m,4,c);for(i=d=0;++i<m;)d+=((l[i+1]-l[i]||i>m-2)&&l[i-1]==l[i]);return d;}
. Jak zauważył tylko @ ASCII,include
s nie wpływają na kompilację twojego programud;c(*a,*b){return*a-*b;}r(*l,m){qsort(l,m,4,c);for(d=0;~m--;)d+=(!m||l[1]-*l)&l[-1]==*l++;return d;}
c(*a,*b){return*a-*b;}r(*l,m){qsort(l,m,4,c);return((!m||l[1]-*l)&l[-1]==*l)+(m?r(l+1,m-1):0);}
C # (interaktywny kompilator Visual C #) , 40 bajtów
Pierwszy szkic specyfikacji był niejasny i myślałem, że oznacza to zwrócenie wszystkich elementów, które pojawiają się więcej niż jeden raz. To jest zaktualizowana wersja.
Jakoś nie zauważyłem, że mój kod zwrócił liczbę elementów, które pojawiły się raz. Dzięki Paulowi Karamowi za złapanie tego!
Wypróbuj online!
źródło
n=>n.GroupBy(c=>c).Count(c=>c.Count()>=2)
. OP twierdzi, że odpowiedź z tej listy to 2. Twój kod zwraca 5. Zmiana, którą ci dałem, zwraca 2.>1
zachować liczbę 40 bajtówPython 3 , 38 bajtów
Wypróbuj online!
źródło
J ,
119 bajtów-2 bajty dzięki Jonaszowi!
Wypróbuj online!
Oryginalne rozwiązanie:
Wypróbuj online!
Wyjaśnienie:
źródło
1#.1<1#.=
za 9 bajtów + dobra, klasyczna zabawa.Rubinowy , 34 bajty
Wypróbuj online!
źródło
05AB1E , 4 bajty
Wypróbuj online! lub jako pakiet testowy
Wyjaśnienie
źródło
Galaretka , 4 bajty
Wypróbuj online!
...Lub
ĠIƇL
W jaki sposób?
IƇ
filtrowałby, aby zachować tylko prawdziwe wynikiI
([[6],[3,6]]
), które również mają pożądaną długość.źródło
Perl 6 , 15 bajtów
Wypróbuj online!
Dość oczywiste. Anonimowy blok kodu, który pobiera liczbę (
+
)Set
elementów wśródrepeated
elementów input (*
).Zdałem sobie sprawę, że opublikowałem prawie takie samo rozwiązanie dla pokrewnego pytania.
źródło
Python 3 , 63 bajty
Wypróbuj online!
źródło
Java 8,
7473 bajtyWypróbuj online.
Wyjaśnienie:
źródło
APL (Dyalog Extended) ,
87 bajtów SBCSUżywanie anonimowej ukrytej prefiksu metody Jonaha .
Wypróbuj online!
+/
całkowita liczba wystąpieńdosłownie suma Prawd
1<
gdzie jeden jest mniejszy niż∪
unikalne elementy ”⍧
liczyć się⊢
niezmodyfikowany argumentźródło
Haskell , 41 bajtów
Wypróbuj online!
Policz przyrostki, w których pierwszy element
h
pojawia się dokładnie raz w następnej częścit
.Haskell , 40 bajtów
Wypróbuj online!
Kradzież metody z innych odpowiedzi.
źródło
Haskell, 41 bajtów
To rozwiązanie w zasadzie liczy, ile elementów listy ma ten sam element, który pojawia się dokładnie raz później na liście.
źródło
Haskell , 47 bajtów
Wypróbuj online!
To jest naiwne podejście. Jest prawdopodobnie coś, co można zrobić, aby to poprawić.
Wracamy
0
po pustą listęW przypadku niepustej listy zaczynającej się od,
a
a następnieb
.Jeśli odfiltrowanie
a
zb
jest inne niżb
(toa
jest wb
), zwracamy 1 więcej niżf
zastosowaneb
za
odfiltrowanym s.Jeśli filtrowanie
a
s się nie zmienia,b
po prostu przeglądamyf
resztę.Oto inne podobne podejście, które ma tę samą długość:
Wypróbuj online!
źródło
JavaScript (ES6), 40 bajtów
Wypróbuj online!
źródło
Język Wolfram 34 bajty
Gather
grupuje identyczne liczby całkowite w listy.DeleteCases[...{x_}]
eliminuje listy zawierające jeden numer.Length
zwraca liczbę pozostałych list (każda zawierająca dwie lub więcej identycznych liczb całkowitych.źródło
Count[{_,__}]@*Gather
Japt ,
1211986 bajtówZ dużą pomocą @ ASCII-Only i sugestiami @Shaggy i @Luis felipe De jesus Munoz.
Wypróbuj online!
źródło
Pyth, 6 bajtów
Wypróbuj tutaj
Wyjaśnienie
źródło
Brachylog , 7 bajtów
Wypróbuj online!
Wyjaśnienie:
źródło
PHP, 39 bajtów
miła okazja do zastosowania zmiennych zmiennych :
pobiera dane wejściowe z argumentów wiersza poleceń. Uruchom
-nr
lub wypróbuj online .$argv[0]
jest-
i pojawia się tylko raz w argumentach, więc nie wpływa na wynik.źródło
Element , 40 bajtów
Wypróbuj online!
Wymaga to, aby dane wejściowe miały dokładny format, taki jak
[234, 2, 1000, 2, 99, 234]
(zamknięty[]
przecinkiem i spacją między liczbami całkowitymi).Wyjaśnienie:
źródło
Retina 0.8.2 , 19 bajtów
Wypróbuj online! Link zawiera pakiet testowy, który dzieli każdą linię przecinkami. Wyjaśnienie:
Sortuj równe wartości razem.
Policz liczbę przebiegów co najmniej dwóch wartości.
źródło
Czysty ,
5954 bajtówWypróbuj online!
Sortuje listę, grupuje sąsiednie równe elementy i liczy liczbę z więcej niż 1 pozycją.
źródło
Rdza, 126 bajtów
Poddaję się. Jest to w zasadzie to samo co Ruby. Istnieje „inny sposób” tworzenia tablicy i indeksowania do niej przy użyciu wartości w wektorze wejściowym, +100000, jednak konwersje typów (jako usize / jako i32) zajmują zbyt dużo miejsca.
źródło
MATL , 5 bajtów
Wypróbuj online! Lub sprawdź wszystkie przypadki testowe .
Wyjaśnienie
źródło
k, 8 bajtów
+/1<#:'=
brzmi: suma (długość każdej grupy)> 1
Użyj przykładu (pierwszy przypadek testowy)
pisze 4
źródło