3042. Präfix- und Suffixpaare zählen I
Schwierigkeit:Einfach
Themen:Array, String, Trie, Rolling Hash, String Matching, Hash-Funktion
Sie erhalten ein 0-indiziertes String-Array mit Wörtern.
Lassen Sie uns eine boolesche-Funktion isPrefixAndSuffix definieren, die zwei Zeichenfolgen akzeptiert, str1 und str2:
- isPrefixAndSuffix(str1, str2) gibt true zurück, wenn str1 sowohl ein Präfix1 als auch ein Suffix2 von str2 ist, andernfalls false.
Zum Beispiel ist isPrefixAndSuffix("aba", "ababa") wahr, weil "aba" ein Präfix von "ababa" und auch ein Suffix ist, aber isPrefixAndSuffix("abc", "abcd") ist falsch.
Gibt eine Ganzzahl zurück, die die Anzahl der Indexpaare (i, j) angibt, sodass i
Beispiel 1:
- Eingabe:words = ["a","aba","ababa","aa"]
- Ausgabe: 4
- Erklärung: In diesem Beispiel sind die gezählten Indexpaare: i = 0 und j = 1, weil isPrefixAndSuffix("a", "aba") wahr ist. i = 0 und j = 2, weil isPrefixAndSuffix("a", "ababa") wahr ist. i = 0 und j = 3, weil isPrefixAndSuffix("a", "aa") wahr ist. i = 1 und j = 2, weil isPrefixAndSuffix("aba", "ababa") wahr ist. Daher lautet die Antwort 4.
Beispiel 2:
- Eingabe: Wörter = ["pa", "papa", "ma", "mama"]
- Ausgabe: 2
- Erklärung: In diesem Beispiel sind die gezählten Indexpaare: i = 0 und j = 1, weil isPrefixAndSuffix("pa", "papa") wahr ist. i = 2 und j = 3, weil isPrefixAndSuffix("ma", "mama") wahr ist. Daher lautet die Antwort 2.
Beispiel 3:
- Eingabe:words = ["abab","ab"]
- Ausgabe: 0
- Erklärung: In diesem Beispiel ist das einzige gültige Indexpaar i = 0 und j = 1 und isPrefixAndSuffix("abab", "ab") ist falsch. Daher ist die Antwort 0.
Einschränkungen:
- 1
- 1
- Wörter[i] bestehen nur aus englischen Kleinbuchstaben.
Hinweis:
- Iterieren Sie alle Indexpaare (i, j), sodass i
- Die Antwort ist die Gesamtzahl der Paare, wobei isPrefixAndSuffix(words[i], Words[j]) == true.
Lösung:
Wir müssen alle Indexpaare (i, j) durchlaufen, wobei i
Lassen Sie uns diese Lösung in PHP implementieren: 3042. Präfix- und Suffixpaare zählen I
<?php /** * @param String[] $words * @return Integer */ function countPrefixAndSuffixPairs($words) { ... ... ... /** * go to ./solution.php */ } /** * Function to check if str1 is both a prefix and a suffix of str2 * * @param $str1 * @param $str2 * @return bool */ function isPrefixAndSuffix($str1, $str2) { ... ... ... /** * go to ./solution.php */ } // Example Test Cases $words1 = ["a", "aba", "ababa", "aa"]; $words2 = ["pa", "papa", "ma", "mama"]; $words3 = ["abab", "ab"]; echo countPrefixAndSuffixPairs($words1) . "\n"; // Output: 4 echo countPrefixAndSuffixPairs($words2) . "\n"; // Output: 2 echo countPrefixAndSuffixPairs($words3) . "\n"; // Output: 0 ?>
Erläuterung:
-
countPrefixAndSuffixPairs($words):
- Diese Funktion durchläuft alle möglichen Indexpaare (i, j), sodass i
- Es ruft isPrefixAndSuffix() auf, um zu prüfen, ob Words[i] sowohl ein Präfix als auch ein Suffix von Words[j] ist.
- Wenn die Bedingung wahr ist, wird die Anzahl erhöht.
-
isPrefixAndSuffix($str1, $str2):
- Diese Hilfsfunktion prüft, ob str1 sowohl ein Präfix als auch ein Suffix von str2 ist.
- Es verwendet substr(), um das Präfix und Suffix von str2 zu extrahieren und sie mit str1 zu vergleichen.
- Wenn beide Bedingungen wahr sind, wird „true“ zurückgegeben, andernfalls wird „false“ zurückgegeben.
Zeitkomplexität:
- Die zeitliche Komplexität beträgt O(n2 x m), wobei n die Länge des Wortarrays und m die durchschnittliche Länge des Wortarrays ist Zeichenfolgen im Array. Dies liegt an den verschachtelten Schleifen und den substr()-Operationen.
Beispielausgabe:
Für die angegebenen Eingabearrays:
- ["a", "aba", "ababa", "aa"] -> Ausgabe: 4
- ["pa", "papa", "ma", "mama"] -> Ausgabe: 2
- ["abab", "ab"] -> Ausgabe: 0
Diese Lösung sollte innerhalb der gegebenen Einschränkungen effizient funktionieren.
Kontaktlinks
Wenn Sie diese Serie hilfreich fanden, denken Sie bitte darüber nach, dem Repository einen Stern auf GitHub zu geben oder den Beitrag in Ihren bevorzugten sozialen Netzwerken zu teilen? Ihre Unterstützung würde mir sehr viel bedeuten!
Wenn Sie weitere hilfreiche Inhalte wie diesen wünschen, folgen Sie mir gerne:
- GitHub
-
Präfix Ein Präfix einer Zeichenfolge ist eine Teilzeichenfolge, die am Anfang der Zeichenfolge beginnt und sich bis zu einem beliebigen Punkt darin erstreckt. ↩
-
Suffix Ein Suffix einer Zeichenfolge ist eine Teilzeichenfolge, die an einer beliebigen Stelle in der Zeichenfolge beginnt und sich bis zu ihrem Ende erstreckt. ↩
Das obige ist der detaillierte Inhalt vonPräfix- und Suffixpaare zählen I. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

PhpisusedForSensionsemailsDuetoitSintegrationWithServerMailServicesandexternalsMtpproviders, automatisieren SieNotifikationen undmarketingCampaigns.1) setupyourphpenvironmentwithawebebascriccriptionWithPhpithPhPhPhPhPhPHPHPHPSMAILFUCTORISTION.2) useabasiscriccription

Der beste Weg, um E -Mails zu senden, besteht darin, die Phpmailer -Bibliothek zu verwenden. 1) Die Verwendung der Funktion mail () ist einfach, aber unzuverlässig, was dazu führen kann, dass E -Mails Spam eingeben oder nicht geliefert werden können. 2) Phpmailer bietet eine bessere Kontrolle und Zuverlässigkeit und unterstützt HTML -Mail-, Anhänge- und SMTP -Authentifizierung. 3) Stellen Sie sicher, dass die SMTP -Einstellungen korrekt konfiguriert sind und die Verschlüsselung (z. B. Starttls oder SSL/TLS) zur Verbesserung der Sicherheit verwendet wird. 4) Für große Mengen von E -Mails sollten Sie ein E -Mail -Warteschlangensystem verwenden, um die Leistung zu optimieren.

CustomHeaDersandadvancedFeaturesinphpemailenHanceFunctionality und Relance.1) CustomHeadersAddMetAforTrackingandCategorization.2) htmlemailSallowFormattingAndInteractivity.3) AttemmentmentsCanbesentusings -artig -Phpmailer.4) SMTPAUTHENTICTIVEMPR

Das Senden von E -Mails mit PHP und SMTP kann über die Phpmailer -Bibliothek erreicht werden. 1) Installieren und konfigurieren Sie Phpmailer, 2) Setzen Sie SMTP -Serverdetails, 3) Definieren Sie den E -Mail -Inhalt, 4) E -Mails senden und Fehler behandeln. Verwenden Sie diese Methode, um die Zuverlässigkeit und Sicherheit von E -Mails sicherzustellen.

ThebestApproachForSendingemailsinphpisusinusThephpmailerlibraryDuetoitSRective, merkeurichness, Anneaseofuse.phpmailersupportsSmtp, bietet DETAILEDErRORHANDLY, erlaubt, dass

Der Grund für die Verwendung der Abhängigkeitsinjektion (DI) ist, dass sie lose Kopplung, Testbarkeit und Wartbarkeit des Codes fördert. 1) Verwenden Sie den Konstruktor, um Abhängigkeiten zu injizieren.

PhpperformancetuningiscrucialBecauseitenhancesspeedandeffizienz, die sichvitalforewebapplications.1) CachingwithapcureducesDatabaseloadandimprovesresponSetimes.2 optimierenDatabasequeriesbyselekting -Antriebsanbietung und -Insusingsusing -INDUBUTUBUTUBEXINGEPEEDEPEEDEPEEDEPEEDEPEEDEPEEDEPEEDEPEDEPEED.

TheBestPracticesForSendingemailsSecurelyInphpinclude: 1) usingSecureConfigurations withSmtpandStartTlsenScryption, 2) Validating und SanitIningInputStopreventInjection -Tacks -3) -Decryption -sensistataWithins -SussionSmingSmSslsl, 4), 4), 4), 4), 4)


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.
