Wie lautet der Fehler "Abbrechen" in hackerrank?

Wie lautet der Fehler

Vikash Dubey, Softwareentwicklungsingenieur bei Flipkart (seit 2018)

Dies geschieht in folgenden Bedingungen,

1. Sie verwenden Makro "assert" und der Argumentausdruck wird falsch. Zum Beispiel, behaupten (n <= 10); and somehow n is greater than 10 then abort() is called.

2. Sie verwenden einige Container wie Stack usw. in C ++ und die Größe wird sehr groß (d. H. Überlauf).

Raman Sharma

studierte am Jaypee Institut für Informationstechnologie, Noida
Beantwortet 6. Juni 2017

Es gibt zwei mögliche Ursachen für den Fehler "Abbruch angerufen":

Sie verwenden einen Container wie Vektor, Array, Stack usw. in C ++ und die Größe des Containers wird sehr groß.

Beispiel: int a [1000000] wird genug Speicher haben Sie erhalten keinen Fehler aber int a [10000] [10000] wird sehr viel Speicher damit Fehler "Abort genannt" zeigt.

Zweitens, wenn Sie das Makro "assert" verwenden und der Argumentausdruck dieses Makros mit der funktionalen Form gleich Null ist (dh der Ausdruck ist falsch), wird eine Nachricht in das Standardfehlergerät geschrieben, und der Abbruch wird aufgerufen, wodurch der Befehl beendet wird Programmausführung.

Beispiel: int x = -5;

assert (x> = 0) in diesem Fall wird abort () aufgerufen;

int x = 10;

assert (x> 9) wird in diesem Fall die Ausführung fortgesetzt.

Manohar Reddy Poreddy

Top 100 Rang. 33 Software-Projekte, 40 + Programmiersprachen
Beantwortet Jun 14, 2017 · Autor hat 1k Antworten und 1.7m Antworten

Bei der dynamischen Programmierung könnten wir diesen Fehler erhalten.

Wir verwenden ein "Memo" -Array zur Memoisierung, d. H. Zum Speichern von Werten zuvor berechneter Operationen

Je nach Problem könnte es ein 1-D- oder 2-D-Array sein.

Beispielsweise:

Min-Münzen zu finden, um eine Gesamtsumme S zu erhalten, erfordert ein 1-D-Memo-Array

Das Ermitteln von LCS aus 2 Strings erfordert ein 2-D-Memo-Array

Wenn wir nun 2D anstelle von 1-D-Array wählen, verschwenden wir viel Speicher.

Zum Beispiel brauchen wir 1000 vorzeichenlose Ganzzahlen, also wird A [1000] oder A [1001] ausreichen, wenn Sie jedoch das 2-D-Array A [1000] [1000] oder A [1001] [1001] zuweisen, wird dies der Fall sein riesige Erinnerung.

Bei HackerRank erhalten wir in diesem Fall "Abort called".

An anderen Stellen könnte es RTE (Laufzeitfehler) sein.

Hoffnung, die geholfen hat.

Ankit Anand

Senior Information Designer bei Interra Systems (seit 2017)
Beantwortet Dec 21, 2017 · Autor hat 120 Antworten und 41.6k Antwortansichten

Aus irgendeinem Grund wurde die Operation, die Sie ausgeführt haben, zurückgerufen und konnte nicht abgeschlossen werden.

HackerRank, Dynamische Programmierung (DP), Wettbewerbsfähige Programmierung, Computerprogrammierung