Masalalar
Go Algoritm masala

To'g'ri katta harflar

07 August, 2026
Go
package main
import (
    "unicode"
)
func (_ Solution) DetectCapitalUse(word string) bool {

    runes := []rune(word)
    
    // hammasi katta bolsa true 
    
    allLetterUpper := true 
    for _, v := range runes{
        if !unicode.IsUpper(v){
            allLetterUpper = false
            break
        }
    }
    if allLetterUpper {
        return true 
    }
    
    // faqat birinchisi katta bolsa true 
    if len(runes) > 0 && unicode.IsUpper(runes[0]) {
        for i := 1; i < len(runes); i ++ {
            if  unicode.IsUpper(runes[i]){
                return false
            }
        }
        return true 

	}
    // hammasi kichik bolsa    
    allLetterLower := true 
    for _, v := range runes{
        if !unicode.IsLower(v){
            allLetterLower = false
            break
        }
    }
    if allLetterLower {
        return true 
    }
    return false 
}

Buyerda biz 3 xil xolatga tekshirishimiz kerak.

1) Birinchi katta harf bolib qolganlari kichik bolsa true.

2) Hamma harflari katta harfda bolsa true

3) aralash bolsa false qaytarishimiz kerak

Dastlab berilgan stringni textni rune larga aylantirib olamiz, chunki stringni ozini detalniy har biridan otib chiqishimiz uchun uni har bir elementini aloxida olishimiz kerak!

xop undan keyin birinchi, tekshiruv hammasi katta bolsa

bitta ozgaruvchi belgilab oldim va for range orqali beruilgan textni har bir elementini tekshirib yurib otdim agar birortasi katta bolmasa belgilab olgan ozgaruvchimni false qilib olaman va return false qaytaraman

xop undan keyin ikkinchi, tekshiruv faqat birinchi harf katta bolsa

men hammasi kattami degan xoaltga check yozdim, unda bunday boladi text uzunligi 0 dan katta va birinchi harfi katta bolsa for ga kiradi

yani birinchi harf katta bolsagina keyingi qolgan harflarni tekshiramiz bolmasam, shuyerning ozidan false return qilamiz

va har bir elementdan for orqali otamiz faqat birinchi harfni olmaymiz yani 0 dan emas 1-indexdan sanashni boshlaymiz

uchinchisi kichik xolatga tekshirish

unda ham ozgaruvchiga olib keyin agar biror harf katta bolib qolsa ozgaruvchisni false qilaman va if da tekshirganimda true bolsagina true qaytaramiz