Heim >Backend-Entwicklung >PHP-Tutorial >Machen Sie einen String mithilfe zyklischer Inkremente zu einer Teilsequenz
2825. Machen Sie String mithilfe zyklischer Inkremente zu einer Teilsequenz
Schwierigkeit:Mittel
Themen:Zwei Zeiger, String
Sie erhalten zwei 0-indizierte Zeichenfolgen str1 und str2.
In einer Operation wählen Sie einen Satz von Indizes in str1 aus und erhöhen für jeden Index i im Satz str1[i] zyklisch zum nächsten Zeichen. Das heißt, „a“ wird zu „b“, „b“ wird zu „c“ usw. und „z“ wird zu „a“.
Gib true zurück, wenn es möglich ist, str2 zu einer Teilfolge von str1 zu machen, indem die Operation höchstens einmal ausgeführt wird, andernfalls false.
Hinweis: Eine Teilfolge einer Zeichenfolge ist eine neue Zeichenfolge, die aus der ursprünglichen Zeichenfolge gebildet wird, indem einige (möglicherweise keine) der Zeichen gelöscht werden, ohne die relativen Positionen der verbleibenden Zeichen zu beeinträchtigen.
Beispiel 1:
Beispiel 2:
Beispiel 3:
Einschränkungen:
Hinweis:
Lösung:
Wir müssen prüfen, ob wir str2 zu einer Teilfolge von str1 machen können, indem wir höchstens eine zyklische Inkrementierungsoperation für alle Zeichen in str1 durchführen:
Lassen Sie uns diese Lösung in PHP implementieren: 2825. Machen Sie einen String mithilfe zyklischer Inkremente zu einer Teilsequenz
Erläuterung:
- Zwei Zeiger: i und j werden auf den Anfang von str1 bzw. str2 initialisiert.
- Matching-Logik: Innerhalb der Schleife prüfen wir, ob die Zeichen bei str1[i] und str2[j] gleich sind oder ob wir str1[i] zyklisch erhöhen können, um mit str2[j] übereinzustimmen.
- Die zyklische Inkrementierungsbedingung wird mit (ord($str1[$i]) 1 - ord('a')) % 26 behandelt, das prüft, ob str1[i] inkrementiert werden kann, um mit str2[j] übereinzustimmen.
- Teilsequenzprüfung: Wenn wir str2 vollständig durchlaufen haben (d. h. j == m), bedeutet dies, dass str2 eine Teilfolge von str1 ist. Sonst ist es das nicht.
Zeitkomplexität:
Diese Lösung prüft effizient, ob es möglich ist, str2 mit höchstens einer zyklischen Inkrementierungsoperation zu einer Teilfolge von str1 zu machen.
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:
Das obige ist der detaillierte Inhalt vonMachen Sie einen String mithilfe zyklischer Inkremente zu einer Teilsequenz. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!