Senior
Терезеде бардык керектүү белгилер бар экенин кантип текшерсе болот?
sobes.tech AI
AIден жооп
Терезе (мисалы, кесим же сап) бардык зарыл белгилерди камтыйт деп текшерүү үчүн, бир нече ыкмаларды колдонсо болот. Анын эң кеңири тарагандарынын бири — талап кылынган ар бир белгинин терезеде бар-жогун map (карта) аркылуу саноо же булев белгилерди колдонуу.
Go тилинде мисал, анда string 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
}
Бул код зарыл болгон белгилердин топтомун түзөт, жана аларды терезеде таба турган сайын алып салат. Эгер акырында топтом бош болсо, бардык белгилер табылган болот.