Condivisione della tecnologia

La 14a competizione provinciale della Coppa Lanqiao CB Gruppo G Domanda [Abbreviazione di sottostringa] Soluzione (AC)

2024-07-06

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Inserisci qui la descrizione dell'immagine
Inserisci qui la descrizione dell'immagine
Inserisci qui la descrizione dell'immagine
Inserisci qui la descrizione dell'immagine
Inserisci qui la descrizione dell'immagine
Inserisci qui la descrizione dell'immagine

L'idea generale dell'argomento

data stringa ssS,carattere un, un, un bUN,B, chiedi a stringa ssS Quanti sono dentro aaUN inizio bbB La sottostringa finale.

Idee per la risoluzione dei problemi

20 punti

Utilizzare un doppio ciclo per enumerare l'endpoint sinistro e l'endpoint destro per determinare se lo è aaUN inizio bbB La stringa alla fine è la risposta più uno.

100 punti

L'intervallo di dati è ampio e dobbiamo controllare la complessità temporale al suo interno O ( n log ⁡ n ) O(n log n)Lo(NIoGN) Entro.

Fayi

dobbiamo trovare tutto aaUN inizio bbB fine della stringa, allora possiamo farlo per ogni carattere bbB, vai a vedere bbB Quanti ce ne sono sul lato sinistro di aaUN, quindi questi un … un po' di cose bUNB È una stringa legale.Conta quanti personaggi si trovano sul lato sinistro di una determinata posizione aaUN, possiamo usaresomma del prefissoL'algoritmo viene mantenuto.

Metodo 2

Possiamo scorrere l'intera stringa, per ciascuno aaUN Quanti caratteri ci sono a destra del carattere bbB, quindi questi a … ba punti bUNB Sono tutte stringhe legali.Conta i caratteri dopo una certa posizione bbB Il numero può essere utilizzatosomma del suffissoL'algoritmo viene mantenuto.

#include