Sie erhalten ein Array und müssen die Anzahl der Ganzzahlen zurückgeben, die mehr als einmal vorkommen.
[234, 2, 12, 234, 5, 10, 1000, 2, 99, 234]
Dies gibt 2 zurück, da jedes von 234
und 2
mehr als einmal erscheint.
[234, 2, 12, 234]
[2, 12, 234, 5, 10, 1000, 2]
Die Liste wird niemals länger als 100.000 Ganzzahlen sein, und die Ganzzahlen in der Liste werden immer zwischen -100.000 und 100.000 liegen.
Ganzzahlen sollten gezählt werden, wenn sie mehr als einmal vorkommen. Wenn eine Ganzzahl also dreimal vorkommt, zählt sie immer noch nur als eine wiederholte Ganzzahl.
Testfälle
[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
quelle
quelle
Once it counts the repetition, don't count again
? Da wir die Wiederholung einer bestimmten Ganzzahl finden möchten, wie können wir dann wissen, nach welcher Ganzzahl wir suchen müssen, wenn wir sie nicht erhalten? Zuletzt sind die Testfälle etwas verwirrend; Welche werden ausgegeben und welche werden eingegeben?Antworten:
R , 20 Bytes
Ist es das, was du suchst? Dient
table
zum Zählen der Vorkommen der einzelnenscan
Eingabewerte. Prüft, ob count> 1 ist und summiert die Wahrheiten.Probieren Sie es online!
quelle
duplicated
zuerst da - das Demütigetable
ist so nützlich zum Golfen!Haskell , 42 Bytes
Probieren Sie es online! Missbrauch der Tatsache, dass die Ganzzahlen in der Liste garantiert zwischen -100k und 100k liegen.
quelle
Bash + Coreutils, 18
Probieren Sie es online!
quelle
APL (Dyalog Unicode) ,
98 Byte SBCS-1 danke an ngn
Anonyme implizite Präfixfunktion.
Probieren Sie es online!
+/
die Summe von1<
ob 1 kleiner ist als…
⌸
Für jedes einzelne Element:⊢∘
Ignorieren des eigentlichen einzigartigen Elements,≢
die Anzahl seiner Vorkommenquelle
{1<≢⍵}⌸
->1<⊢∘≢⌸
C (clang)
17511795 BytesProbieren Sie es online!
Dies ist das erste Mal, dass ich eines dieser Dokumente eingereicht habe. Lassen Sie mich daher wissen, wenn Probleme mit der Formatierung oder Ähnlichem auftreten.
Updates aus den Kommentaren:
ursprüngliche Vorlage
quelle
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;}
. Wie @ ASCII-only vermerkt, haben dieinclude
s keinen Einfluss auf die Kompilierung Ihres Programmsd;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 # (Visual C # Interactive Compiler) , 40 Byte
Der erste Entwurf der Spezifikation war unklar, und ich dachte, er würde alle Elemente zurückgeben, die mehr als einmal vorkommen. Dies ist die aktualisierte Version.
Irgendwie habe ich nicht bemerkt, dass mein Code die Anzahl der Elemente zurückgab, die einmal vorkamen. Vielen Dank an Paul Karam, der das verstanden hat!
Probieren Sie es online!
quelle
n=>n.GroupBy(c=>c).Count(c=>c.Count()>=2)
. Das OP sagt die Antwort dieser Liste ist 2. Ihr Code gibt 5 zurück. Die Änderung, die ich Ihnen gab, gibt 2 zurück.>1
um die 40 Bytes zu zählenPython 3 , 38 Bytes
Probieren Sie es online!
quelle
J ,
119 Bytes-2 Bytes danke an Jonah!
Probieren Sie es online!
Ursprüngliche Lösung:
Probieren Sie es online!
Erläuterung:
quelle
1#.1<1#.=
für 9 Bytes + guter alter Selbstklassifizierungsspaß.Ruby , 34 Bytes
Probieren Sie es online!
quelle
05AB1E , 4 Bytes
Probieren Sie es online! oder als Test Suite
Erläuterung
quelle
Gelee , 4 Bytes
Probieren Sie es online!
...Oder
ĠIƇL
Wie?
IƇ
würde filtern, um nur wahrheitsgemäße Ergebnisse vonI
([[6],[3,6]]
) zu erhalten, die auch die gewünschte Länge haben.quelle
Perl 6 , 15 Bytes
Probieren Sie es online!
Ziemlich selbsterklärend. Ein anonymer Codeblock, der die Anzahl (
+
)Set
der Elemente unter denrepeated
Elementen der Eingabe (*
) abruft .Ich habe festgestellt, dass ich für eine verwandte Frage fast dieselbe Lösung gepostet habe .
quelle
Python 3 , 63 Bytes
Probieren Sie es online!
quelle
Java 8,
74,73 BytesProbieren Sie es online aus.
Erläuterung:
quelle
APL (Dyalog Extended) ,
8 bis7 Byte SBCSAnonymes implizites Präfix nach Jonahs Methode .
Probieren Sie es online!
+/
Die Gesamtzahl der Vorkommen istbuchstäblich die Summe der Wahrheiten
1<
wo man kleiner ist als∪
die einzigartigen Elemente⍧
mitzählen⊢
das unveränderte Argumentquelle
Haskell , 41 Bytes
Probieren Sie es online!
Count-Suffixe, bei denen das erste Element
h
genau einmal im nachfolgenden Teil vorkommtt
.Haskell , 40 Bytes
Probieren Sie es online!
Die Methode aus anderen Antworten stehlen.
quelle
Haskell, 41 Bytes
Diese Lösung zählt im Grunde genommen, wie viele Elemente der Liste dasselbe Element haben, das genau einmal später in der Liste erscheint.
quelle
Haskell , 47 Bytes
Probieren Sie es online!
Dies ist der naive Ansatz. Es gibt wahrscheinlich etwas, das getan werden könnte, um dies zu verbessern.
Wir kehren
0
für die leere Liste zurückIm Falle einer nicht leeren Liste beginnend mit
a
und dannb
.Wenn sich das Herausfiltern
a
von vonb
unterscheidetb
(d. H.a
Inb
), geben wir 1 mehr zurück, als mit herausgefiltertem sf
angewendet wurde.b
a
Wenn sich das Filtern von
a
s nicht ändert,b
laufen wir einfachf
über den Rest.Hier ist ein ähnlicher Ansatz mit derselben Länge:
Probieren Sie es online!
quelle
JavaScript (ES6), 40 Byte
Probieren Sie es online!
quelle
Wolfram Language 34 Bytes
Gather
gruppiert identische ganze Zahlen in Listen.DeleteCases[...{x_}]
Entfernt Listen mit einer einzelnen Nummer.Length
gibt die Anzahl der verbleibenden Listen zurück (jede enthält zwei oder mehr identische ganze Zahlen).quelle
Count[{_,__}]@*Gather
Japt ,
1211986 BytesMit viel Hilfe von @ ASCII-Only und Vorschlägen von @Shaggy und @Luis felipe De jesus Munoz.
Probieren Sie es online!
quelle
Pyth, 6 Bytes
Probieren Sie es hier aus
Erläuterung
quelle
Brachylog , 7 Bytes
Probieren Sie es online!
Erläuterung:
quelle
PHP, 39 Bytes
eine schöne Gelegenheit, variable Variablen zu verwenden :
Nimmt Eingaben von Befehlszeilenargumenten entgegen. Laufen Sie mit
-nr
oder versuchen Sie es online .$argv[0]
ist-
und das kommt nur einmal in den Argumenten vor, hat also keinen Einfluss auf das Ergebnis.quelle
Element , 40 Bytes
Probieren Sie es online!
Dies erfordert, dass die Eingabe in einem genauen Format erfolgt
[234, 2, 1000, 2, 99, 234]
(eingeschlossen[]
mit einem Komma und einem Leerzeichen zwischen ganzen Zahlen).Erläuterung:
quelle
Retina 0.8.2 , 19 Bytes
Probieren Sie es online! Der Link enthält eine Testsuite, in der jede Zeile durch Kommas getrennt wird. Erläuterung:
Gleiche Werte zusammen sortieren.
Zählen Sie die Anzahl der Läufe mit mindestens zwei Werten.
quelle
Sauber ,
5954 BytesProbieren Sie es online!
Sortiert die Liste, gruppiert benachbarte gleiche Elemente und zählt die Anzahl mit mehr als 1 Element.
quelle
Rust, 126 Bytes
Ich gebe auf. Dies ist im Grunde das gleiche wie Ruby. Es gibt eine "andere Möglichkeit", ein Array zu erstellen und es mithilfe der Werte im Eingabevektor (+100000) zu indizieren. Die Typkonvertierungen (als usize / als i32) belegen jedoch zu viel Platz.
quelle
MATL , 5 Bytes
Probieren Sie es online! Oder überprüfen Sie alle Testfälle .
Erläuterung
quelle
k, 8 Bytes
+/1<#:'=
liest als: Summe (Länge jeder Gruppe)> 1
Anwendungsbeispiel (erster Testfall)
schreibt 4
quelle