Funktioneller Weg, um zu überprüfen, ob ein Array von Zahlen sequentiell ist

9

Nehmen wir an, ein Array ist sequenziell, wenn jedes erfolgreiche Element den Wert des vorherigen Elements + 1 hat. Angenommen, ich habe ein Array von Zahlen wie {5,6,7,8} (sequenziell) oder {1,2,5} (nicht sequenziell).

Gibt es eine nette Funktion, um zu überprüfen, ob das Array sequenziell ist? Ich kann es mit dem folgenden Code tun:

%Vor%

Ich versuche herauszufinden, ob eine Pokerhand gerade ist.

    
Axarydax 14.08.2013, 06:50
quelle

7 Antworten

9

Versuchen Sie Folgendes:

%Vor%     
wudzik 14.08.2013, 06:55
quelle
2

Mit Linq:

%Vor%     
JDunkerley 14.08.2013 07:02
quelle
2

Dies sollte für alle sequenziellen, nicht sequentiellen Daten ausreichen. Ein vollständiges Beispiel mit Beispieleingabe. Getestet und funktioniert einwandfrei

%Vor%     
Ehsan 14.08.2013 07:02
quelle
2

Ich weiß nicht, ob es wirklich eine Verbesserung / schöner ist, aber Sie könnten Range verwenden.

%Vor%

Dies gibt true zurück, wenn das Array keine fortlaufende Nummer enthält.

    
Serge 14.08.2013 06:56
quelle
1
%Vor%     
Ashok Damani 14.08.2013 06:58
quelle
1

Wie: stelle sicher, dass das Array in C # sequenziell ist

Antwort dort:

Wenn Sie sicher sind, dass das Array sortiert ist und keine Duplikate enthält , können Sie einfach Folgendes überprüfen:

%Vor%     
sara 14.08.2013 06:57
quelle
0

Sortieren Sie zuerst das Array, entfernen Sie N einer Art (zB Paare) mit distinct () und Wenn die Array-Länge immer == bis 5 ist, müssen Sie nur if ((array [4] - array [0] ) == 4) true zurückgeben.

Es wird komplizierter, wenn seine Texas Hold'em oder wenn Sie sowohl für ein Ass hoch und Ass niedrig Straight berücksichtigen müssen.

    
Asmussen 27.09.2017 12:53
quelle

Tags und Links