Senior
Ako skontrolovať, či okno obsahuje všetky potrebné znaky?
sobes.tech AI
Odpoveď od AI
Ak chcete skontrolovať, či okno (napríklad rez alebo riadok) obsahuje všetky potrebné znaky, môžete použiť niekoľko prístupov. Jeden z najbežnejších je skontrolovať prítomnosť každého požadovaného znaku v okne pomocou mapy (mapy) na počítanie alebo booleovských vlajok.
Príklad v Go, kde je potrebné skontrolovať, či reťazec obsahuje všetky znaky zo súboru requiredChars:
func containsAllChars(window string, requiredChars string) bool {
needed := make(map[rune]bool)
for _, ch := range requiredChars {
needed[ch] = true
}
for _, ch := range window {
if needed[ch] {
delete(needed, ch)
}
}
return len(needed) == 0
}
Tento kód vytvára množinu potrebných znakov, ktoré následne odstraňuje, keď ich nájde v okne. Ak je na konci množina prázdna, všetky znaky boli nájdené.
Pre zložitejšie úlohy (napríklad s ohľadom na počet každého znaku) možno použiť map[rune]int a porovnávať frekvencie.