Top 8 der wichtigsten Fragen und Antworten zu Kodierungsinterviews 2022 [Für Neueinsteiger und Erfahrene]

Veröffentlicht: 2021-08-25

Gute Grundlagen von Datenstrukturen wie Arrays, Binärbäume, Hash-Tabellen und verknüpfte Listen sind unerlässlich. Sie müssen sich mit wesentlichen Algorithmen und Methoden auskennen und Programmiersprachen wie Java gut beherrschen, insbesondere wenn Sie sich auf Programmierjobs bewerben. Sie können die Antworten auf wichtige Fragen zum Kodieren von Vorstellungsgesprächen auf jeden Fall lernen, aber es wird dringend empfohlen, die Lösungen selbst ausgiebig zu üben.

Die besten 8 Kodierungs-Interviewfragen und ihre Antworten

Lassen Sie uns einen Blick auf einige der wichtigsten Programmierfragen werfen, die in Interviews gestellt werden, die von großen Unternehmen wie Microsoft, IBM, Google usw. veranstaltet werden.

1. Wie findet man das erste nicht wiederholte Zeichen in einem Wort?

Um diese Frage zu beantworten, müssen Sie zunächst verstehen, was getan werden muss, um diese Funktion zu fördern. Es muss eine Funktion geschrieben werden, die Zeichenfolgen akzeptiert und die ersten nicht wiederholten Zeichen zurückgibt.

Beispielsweise ist im Wort „passage“ „p“ das erste nicht wiederholte Zeichen oder im Wort „turtle“ ist „u“ das erste nicht wiederholte Zeichen. Also, wie lösen wir dieses Problem? Wir können eine Tabelle zum Speichern der Wiederholungen für alle Zeichen erstellen und dann die ersten Einträge auswählen, die nicht wiederholt werden.

Um einen Code zu schreiben, der die ersten nicht wiederholten Buchstaben zurückgibt, können wir LinkedHashMap verwenden, um die Zeichenanzahl zu speichern. Diese HashMap folgt der Reihenfolge des Einfügens und Zeichen werden an der gleichen Position wie im String initialisiert. Der gescannte String muss mit LinkedHashMap iteriert werden, um den erforderlichen Eintrag mit dem Wert 1 auszuwählen.

Eine andere Möglichkeit, dieses Problem anzugehen, ist die Verwendung von firstNonRepeatingChar(String word). Dadurch kann das nicht wiederholte Zeichen, das zuerst erscheint, in einem einzigen Durchgang identifiziert werden. Dieser Ansatz verwendete zwei Speicher, um eine Interaktion zu ersetzen. Diese Methode speichert nicht wiederholte und wiederholte Zeichen separat, und wenn die Iteration endet, ist das erforderliche Zeichen das erste Element in der Liste.

2. Wie können Sie Duplikate aus Arrays entfernen?

Zunächst müssen Sie das LinkedHashSet (Set-Schnittstelle) verwenden, um die ursprüngliche Einfügungsreihenfolge der Elemente in das Set beizubehalten. Sie müssen Schleifen oder Rekursionsfunktionen verwenden, um diese Art der Kodierung von Interviewfragen zu lösen.

Der Hauptfaktor, den wir beim Umgang mit Arrays beachten müssen, sind nicht die Elemente, die Duplikate haben. Das Hauptproblem besteht hier darin, stattdessen die Duplikate zu entfernen. Arrays sind statische Datenstrukturen, die eine feste Länge haben und daher nicht geändert werden können. Um also Elemente aus Arrays zu löschen, müssen Sie neue Arrays erstellen und den Inhalt in diese neuen Arrays duplizieren.

Zuerst müssen Sie die Arrays in Arraylists konvertieren und dann aus diesen ArrayLists LinkedHashSets erstellen. Wenn Eingabearrays eine größere Anzahl von Duplikaten enthalten, kann dies zu mehreren temporären Arrays führen, wodurch die Kosten für den Import des Inhalts steigen. Diese Einschränkung erzwingt, dass wir dieses Problem auf eine Weise angehen, die weniger Speicher und Verarbeitungsleistung erfordert.

Wir müssen die Duplikate entfernen, aber nicht in die resultierenden Arrays kopieren, also die Duplikate nicht vollständig löschen, sondern sie einfach durch 0 als Standardwert ersetzen.

3. Wie können wir überprüfen, ob eine Zahl eine Primzahl ist?

Dies ist eine der häufigsten Fragen in einem Codierungsinterview, bei der es darum geht, herauszufinden, ob die angegebene Zahl eine Primzahl ist oder nicht. Diese Art von Programmen sind die Grundlagen des algorithmischen Denkens, da wir Lösungen finden müssen, die auf der Tatsache basieren, dass Primzahlen allesamt natürliche Zahlen sind, die nicht durch andere positive Zahlen als 1 geteilt werden können.

Wir müssen Code schreiben, um Schleifen zu erstellen, die jede Zahl von 1 bis zur Zielzahl prüfen, um zu sehen, ob die Zielzahl durch eine andere positive Zahl als sich selbst oder 1 teilbar ist.

Diese Funktion führt uns zur Lösung. Wenn wir nach einer besonders großen Zahl suchen, können wir einfach bis zur Quadratwurzel von N suchen, wobei N die Zielzahl ist. Im Fall einer zulässigen Quadratwurzel ist es nicht erforderlich, bis N zu prüfen.

Wenn die Zahl nicht durch 2 teilbar ist, muss nicht geprüft werden, ob sie durch andere gerade Zahlen teilbar ist, wodurch die zum Finden der Lösung erforderliche Zeit verkürzt wird. Dies ist eine optimierte Version der Lösung, bei der die Analyse der Zahl vor dem Schreiben der Lösung praktisch ist.

4. Wie können Sie überprüfen, ob Zeichenfolgen nur Ziffern enthalten?

Wenn Sie reguläre Ausdrücke schreiben möchten, um zu überprüfen, ob Zeichenfolgen nur Zahlen sind oder ob sie keine Ziffern enthalten, müssen Sie sich zunächst mit der Verwendung von Zeichensätzen in regulären Java-Ausdrücken vertraut machen. Programmiersprachen wie Java unterstützen reguläre Ausdrücke mithilfe der Klassen java.util.regex.Matcher und java.util.regex.Pattern. Java.util.regex ist ein spezielles Paket für diesen Zweck.

Um mithilfe regulärer Ausdrücke zu überprüfen, ob nur Zahlen vorhanden sind, können wir Code verwenden, um zu analysieren, ob Zeichenfolgen eine rohe Ganzzahl enthalten. Wir prüfen, ob der String nur Ziffern zwischen 0 – 9 enthält. Auch wenn der String Ziffern, aber auch andere Zeichen enthält, handelt es sich nicht um einen einfachen Zahlenstring. Reguläre Ausdrücke suchen nur nach Ganzzahlen und berücksichtigen keine Punktzeichen (.), sodass Dezimalzahlen und Gleitkommazahlen den Test nicht bestehen.

5. Wie können Sie die Wörter in einem Zielsatz ohne die Hilfe von Bibliotheksmethoden umkehren?

Dies ist auch eine der häufigsten Fragen in Vorstellungsgesprächen. Zunächst müssen wir die Anforderung verstehen und wissen, wie die Lücke in dieser Anforderung geschlossen werden kann. Bei solchen Fragen müssen wir uns zunächst darauf konzentrieren, die richtigen Fragen zu stellen. Strings sind nichts anderes als Sätze bestimmter Zeichen, die ein einzelnes Wort oder mehrere Wörter enthalten können.

Ein Satz kann auch leer sein. Wenn uns zum Beispiel der Satz „Programmieren macht Spaß.“ gegeben wird, müssen wir ihn in „Spaß ist Programmieren“ umkehren. effektiv. Wir müssen reguläre Ausdrücke in Java verwenden, um die gegebenen Strings in Leerzeichen zu unterteilen, gefolgt von der Anwendung der Methode reverse() aus der Utility-Klasse Collections.

Sobald Sie in der Lage sind, die Zeichenfolgen mit Regex'\\s' zu teilen, wird als Ergebnis ein Array von Wörtern zurückgegeben. Dies kümmert sich auch um die Wörter, die durch mehrere Leerzeichen getrennt sind. Sobald das Array zurückgegeben wird, können Sie ArrayLists aus diesen Arrays erstellen und anschließend die Methode Collections.reverse() verwenden. Dies kehrt ArrayLists um und jedes Wort wird in umgekehrter Reihenfolge neu initialisiert.

Jetzt müssen Sie nur noch StringBuilder verwenden, um mehrere Zeichenfolgen durch ArrayList-Iteration zu verketten. Man muss sicherstellen, dass die Größe angegeben wird, da die Größenänderung von StringBuilder ein kostspieliger Prozess in Bezug auf Rechenleistung und Speicher ist. Die Größenänderung führt dazu, dass neue Arrays erstellt werden, indem der Inhalt aus den älteren Arrays kopiert wird.

6. Wie können Sie Zeichen aus Zeichenfolgen ersetzen oder entfernen?

Angenommen, wir haben eine Zeichenfolge, „Woocommerce“, und wir möchten den Buchstaben „r“ durch „n“ ersetzen, es gibt mehrere Methoden, um dies zu erreichen. Zeichenfolgenklassen in Java bieten mehrere Ansätze zum Ersetzen von Zeichen in Zeichenfolgen mithilfe von CharSequence und Teilzeichenfolgen.

Sie können einfach eine Ersetzungsmethode innerhalb der Zeichenfolge aufrufen, die am Ende das Zielzeichen ersetzt und als Ergebnis das gewünschte Zeichen zurückgibt. Strings sind in Programmiersprachen wie Java unveränderlich.

Daher werden jedes Mal, wenn diese Operationen wie Entfernen oder Ersetzen an Strings durchgeführt werden, standardmäßig neue String-Objekte generiert. Es gibt 4 überladene Methoden zum Ersetzen von Zeichenfolgen mit Java:

  • Ersetzen (Zeichen altes Zeichen, Zeichen neues Zeichen)
  • replaceAll(String-Regex, String-Ersetzung)
  • replace(CharSequence-Ziel, CharSequence-Ersetzung)
  • replaceFirst(String-Regex, String-Ersetzung)

CharSequence ist eine der Super-Schnittstellen für Strings, StringBuilder und StringBuffer, die es uns ermöglicht, jedes der Objekte von diesen als Argumente für diese Ersetzungsmethode zu übergeben. replaceAll() ersetzt am Ende jede einzelne Übereinstimmung durch Ersatzstrings, während replaceFirst() nur die ersten Übereinstimmungen ersetzt.

Alles in allem sind all dies leistungsstarke Methoden, die reguläre Ausdrücke akzeptieren. Die Java.lang.String-Klasse ermöglicht all diese überladenen Methoden, die einzelne Zeichen oder Teilzeichenfolgen in Java problemlos ersetzen können.

Es wird dringend empfohlen, replaceAll() zu verwenden, da dies jedes Vorkommen übereinstimmender Zeichen ersetzt. Wenn wir diesem Ansatz folgen, können wir reguläre Ausdrucksmuster erwarten und so mehr Kraft gewinnen. Diese Methode kann auch jedes Komma durch Pipes ersetzen, um kommagetrennte Dateien in durch Stapel getrennte Zeichenfolgen umzuwandeln.

Wenn man jedoch nur ein einzelnes Zeichen ersetzen möchte, kann man einfach die Methode replace() verwenden, die das alte und neue gegebene Zeichen berücksichtigt.

Lesen Sie: Fragen und Antworten zu Java-Interviews

7. Wie kann man in Programmiersprachen wie Java Texte an Dateien anhängen?

Das Anhängen unterscheidet sich stark von der Erstellung neuer Dateien und dem Schreiben von Daten in die neuen Dateien. Beim Anhängen existieren bereits Dateien und wir müssen einfach Text am Ende der Datei hinzufügen. Dies ähnelt Protokolldateien, da sie ständig mit dem System aktualisiert werden.

Protokolldateien sind das perfekte Beispiel für das Anhängen von Text, da Anwendungen fortlaufend Protokolldetails an diese Dateien anhängen. Für dieses Problem sind keine Protokollierungsframeworks erforderlich, aber Sie müssen wissen, wie Sie Text an vorhandene Dateien anhängen. Um dieses Problem zu lösen, müssen Sie sich der Bequemlichkeitsklassen bewusst sein, um Zeichendateien zu schreiben.

Die Klasse verfügt über Konstruktoren, die die Akzeptabilität des standardmäßigen Bytepuffers und der Zeichencodierung annehmen. Wenn Sie die Werte selbst angeben möchten, können Sie den OutputStreamWriter einfach mit dem FileOutputStream konstruieren. Die Verfügbarkeit von Dateien hängt von den zugrunde liegenden Plattformen ab, die bestimmen, ob die Datei erstellt werden kann oder nicht.

Einige Plattformen ermöglichen die Initialisierung von Dateien für Schreibfunktionen mit einem einzigen FileWrite oder mehreren Dateischreibobjekten. Konstruktoren dieser Klasse schlagen jedoch fehl, sobald die betroffene Datei bereits initialisiert ist. FileWriter wird zum Schreiben von Zeichenströmen verwendet und FileOutputStream kann rohe Byteströme schreiben.

Lernen Sie Softwareentwicklungskurse online von den besten Universitäten der Welt. Verdienen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.

8. Wie findet man die größte oder kleinste Zahl in einem Array von ganzen Zahlen?

Für diese Lösung müssen wir eine Funktion oder Methode codieren, die die größte oder kleinste Zahl aus Arrays finden kann, die vollwertige Ganzzahlen sind. Wir müssen zuerst eine Quelldatei in Java mit dem Namen MaximumMinimumArrayDemo.java erstellen und den geschriebenen Code hierher kopieren, um ihn zu kompilieren und auszuführen.

Wir können zwei Variablen verwenden, die wir als „größte“ und „kleinste“ bezeichnen können, um die maximalen bzw. minimalen Werte aus den Arrays zu speichern. Die kleinste Zahl kann mit integer.MIN_VALUE und die größte mit integer.MAX_VALUE initialisiert werden.

Bei jeder Iteration der Schleifen, die Sie initiiert haben, können Sie aktuelle Zahlen mit „größten“ und „kleinsten“ vergleichen und sie entsprechend aktualisieren. Arrays überschreiben die toString-Methode in Java nicht, daher können Sie Arrays.toString() verwenden, um den Inhalt der Zielarrays zu drucken.

Mit dieser statischen Methode können Sie die Hauptfunktion direkt aufrufen. Anschließend müssen Sie die zufälligen Arrays durch diese Methode leiten, um zu überprüfen, ob die maximalen und minimalen Werte korrekt zurückgegeben wurden. Sie können diese Tests auch durch Unit-Tests in Ihrer IDE automatisieren.

Kasse: Die 4 besten Computerkenntnisse für Ihren Lebenslauf

Fazit

Studiengänge mit Fokus auf Programmieren eignen sich nicht nur hervorragend zum Lösen von Problemen, sondern erhöhen zusätzlich Ihre Chancen, bei Bewerbungen ausgewählt zu werden. Wenn Sie mehr über die Java-Programmierung und fortgeschrittenere Codierungsprobleme erfahren möchten, können Sie sich für einen umfassenden Kurs wie den Master of Science in Computer Science von upGrad oder den Full Stack Development Course anmelden .

Werden Sie Full-Stack-Entwickler

Bewerben Sie sich für die berufsgebundene PG-Zertifizierung in Software Engineering von upGrad