Senior
Ինչպե՞ս ստուգել, որ պատուհանը պարունակում է բոլոր անհրաժեշտ նշանները։
sobes.tech AI
Պատասխան AI-ից
Որոշելու համար, թե արդյոք պատուհանը (օրինակ՝ կտրվածքը կամ տողը) պարունակում է բոլոր անհրաժեշտ նիշերը, կարելի է օգտագործել մի քանի մոտեցումներ: Ամենատարածվածներից մեկը՝ ստուգել յուրաքանչյուր պահանջվող նիշի առկայությունը պատուհանում՝ օգտագործելով քարտեզ (map) հաշվարկի կամ բուլյան դրոշների միջոցով:
Օրինակ Go-ում, որտեղ անհրաժեշտ է ստուգել, թե արդյոք տողը պարունակում է բոլոր նիշերը 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
}
Այս կոդը ստեղծում է անհրաժեշտ նիշերի հավաքածու, որը հետո հեռացվում է, երբ դրանք հայտնաբերվում են պատուհանում: Եթե վերջում հավաքածուն դատարկ է, նշանակում է, որ բոլոր նիշերը գտնվել են։