PHP-Aufgaben auf LeetCode: Wie man sie löst und was man lernen sollte

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

PHP auf LeetCode: Ein unerwarteter, aber mächtiger Verbündeter bei der Vorbereitung auf Vorstellungsgespräche

\n\n

Wenn man „LeetCode“ hört, denkt man normalerweise an Java, Python oder C++. PHP wirkt in dieser Liste wie ein Außenseiter. Aber wenn Sie in PHP programmieren und wachsen wollen – vom einfachen „Script-Schreiber“ zum Ingenieur, der hochlastige Systeme entwirft – dann müssen Sie unbedingt den Weg über LeetCode in PHP gehen.

\n\n

Warum? Weil es bei LeetCode nicht um Syntax geht. Es geht um algorithmisches Denken. Und PHP gibt Ihnen, bei all seiner Webspezifik, genau dieselben Werkzeuge für die Arbeit mit Arrays, Strings, Bäumen und Graphen. Nur mit einer etwas anderen Syntax und einigen „Fallstricken“.

\n\n

In diesem Artikel werden wir uns ansehen, welche Themen Sie auffrischen müssen, wie Sie effizienten PHP-Code für LeetCode schreiben, und zeigen echte Lösungsbeispiele. Los geht's!

\n\n

Warum braucht ein PHP-Entwickler LeetCode?

\n\n

Viele denken: „Ich bin Backend-Entwickler in PHP, mir reichen Laravel und SQL.“ Das ist eine Falle. In Vorstellungsgesprächen bei großen Unternehmen (und nicht nur dort) bekommen Sie eine Aufgabe zur binären Suche oder dynamischen Programmierung. Und wenn Sie solche Aufgaben nicht in PHP lösen können, werden Sie nicht eingestellt, selbst wenn Sie ein Symfony-Guru sind.

\n\n

LeetCode trainiert:

\n
    \n
  • Die Fähigkeit, die Komplexität von Algorithmen zu analysieren (Big O). Ohne dies können Sie keine Abfragen optimieren oder effiziente Warteschlangen schreiben.
  • \n
  • Die Arbeit mit ungewöhnlichen Datenstrukturen – Stapel, Warteschlangen, Hashtabellen, Bäume. In PHP sind sie nicht so offensichtlich wie in Java.
  • \n
  • Code-Sauberkeit – Sie lernen, kurze, verständliche Funktionen ohne unnötige Krücken zu schreiben.
  • \n
\n\n

Und ja, PHP auf LeetCode ist kein Verweis auf die Dokumentation. Es ist eine vollwertige Sprache für Lösungen. Die Hauptsache ist, ihre Besonderheiten zu kennen.

\n\n

Was sollte man vor dem Start lernen?

\n\n

1. Arrays – das Hauptwerkzeug von PHP

\n

PHP hat keine klassischen Listen oder Hashtabellen – all das sind Arrays. Sie können sowohl indiziert als auch assoziativ sein. Das ist mächtig, aber auch gefährlich: Man kann versehentlich Schlüsseltypen mischen.

\n\n

Wichtig:

\n
    \n
  • array_map(), array_filter(), array_reduce() – Ihre besten Freunde.
  • \n
  • Sortierung: sort(), asort(), ksort(). Denken Sie daran, dass sort() die Schlüssel zurücksetzt.
  • \n
  • Prüfung auf Schlüsselexistenz: isset() und array_key_exists() sind nicht dasselbe.
  • \n
\n\n

2. Strings und reguläre Ausdrücke

\n

PHP ist bekannt für seine String-Funktionen. Auf LeetCode gibt es oft Aufgaben zu Palindromen, Anagrammen, Zeichenzählung. Verwenden Sie str_split(), count_chars(), preg_match() (aber übertreiben Sie es nicht – im Vorstellungsgespräch könnte man Sie bitten, ohne reguläre Ausdrücke zu arbeiten).

\n\n

3. Rekursion und Stapel

\n

PHP hat keinen eingebauten Stapel (SplStack gibt es, wird aber selten verwendet). Meistens wird ein Stapel mit einem Array und array_push() und array_pop() emuliert. Rekursion funktioniert auch, aber achten Sie auf die Tiefe – standardmäßig liegt das Limit bei 256 Aufrufen.

\n\n

4. Klassen und Objekte

\n

LeetCode gibt oft Aufgaben, bei denen eine Klasse implementiert werden muss (Stapel, Warteschlange, LRU-Cache). In PHP erfolgt dies über Klassen mit private/protected Eigenschaften. Vergessen Sie nicht __construct() und die Typisierung.

\n\n

Typische Aufgaben auf LeetCode für PHP

\n\n

Lassen Sie uns drei beliebte Aufgaben durchgehen – von einfach bis mittelschwer. Der Code ist in PHP, mit Erklärungen.

\n\n

Aufgabe 1: Two Sum (Einfach)

\n

Bedingung: Gegeben ist ein Array von Zahlen und eine Zielsumme. Finden Sie die Indizes der beiden Zahlen, die in der Summe das target ergeben.

\n\n

Lösung mit einer Hashtabelle (assoziatives Array):

\n\n
function twoSum(array $nums, int $target): array {\n    $map = []; // Schlüssel – Zahl, Wert – Index\n    \n    foreach ($nums as $i => $                

Blogs

Buchempfehlungen