2024-07-06
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
gegebene Zeichenfolge ssS,Charakter ein, ba, bA,B, frag string ssS Wie viele sind da drin? einA Anfang bbB Der abschließende Teilstring.
Verwenden Sie eine Doppelschleife, um den linken und rechten Endpunkt aufzuzählen und festzustellen, ob dies der Fall ist einA Anfang bbB Wenn die Zeichenfolge am Ende die Antwort ist, fügen Sie eine hinzu.
Der Datenbereich ist groß und wir müssen die zeitliche Komplexität darin kontrollieren O ( n log n ) O(nlog n)Ö(NsieheGN) Innerhalb.
wir müssen alles finden einA Anfang bbB Ende der Zeichenfolge, dann können wir für jedes Zeichen bbB, Geh und sehe bbB Wie viele sind auf der linken Seite? einA, dann diese a … b Punkte bA…B Es handelt sich um eine legale Zeichenfolge.Zählen Sie, wie viele Zeichen sich auf der linken Seite einer bestimmten Position befinden einA, wir können benutzenPräfixsummeDer Algorithmus bleibt erhalten.
Wir können für jeden die gesamte Zeichenfolge durchlaufen einA Wie viele Zeichen befinden sich rechts vom Zeichen? bbB, dann diese a … ba Punkte bA…B Alle sind legale Zeichenfolgen.Zählen Sie Zeichen ab einer bestimmten Position bbB Die Nummer kann verwendet werdenSuffixsummeDer Algorithmus bleibt erhalten.
#include