Masalalar
Go Algoritm masala

Bitta tahrir

15 September, 2026
Go
package main
import "math"
func (_ Solution) OneEdit(stringOne string, stringTwo string) bool {
	
   if math.Abs(float64(len(stringOne)-len(stringTwo))) > 1 {
        return false
    }

  // ikkalasi teng bolgan xolatda 

  if len((stringOne)) == len(stringTwo){

      diff := 0

      for i := 0; i < len(stringOne); i ++ {
        if stringOne[i] != stringTwo[i] {
          diff ++
        }
      }
        return diff <= 1

  }

  // ikkalasidan biri bir biridan kichik yoki katta boladigan xolatda

  longer := stringOne
  shorter := stringTwo

  if len(shorter) > len(longer){
    longer = stringTwo
    shorter = stringOne
  }

  i := 0
  j := 0 
  diff := 0 

  for i < len(longer) && j < len(shorter) {
    if longer[i] != shorter[j] {
      i ++
      diff ++
      if diff > 1 {
        return false
      }
      continue
    }

    i ++
    j ++
  }

	return true
}

xop masalaga qaraymiz, bizda bunday shartlar bor


stringlar teng bolsa

stringlarni uzunliklari har xil bolganda

har xil bolganida ham orasidagi farq bittadan oshmasligi kerak, masalan


hello

hllo bolsa


hello dan e ni olib tashlab tenglashtirib qoysa boladi, ikkta stringni


bizning vazifamiz stringda shudnay ozgarish qilishimiz kerakki ular teng bolishi kerak, birinchi ular orasidagi harflarning farqlarini koramiz. va keyin endi ularning


va ularning harflarini ketma ketligini tekshiramiz uni qanday qilamiz ?


bu juda osson, forga tashaymiz va qachongi ularning harflari bir xil bolmagan vaqtda orasidagi farqni sanaymiz u 1dan oshib ketganida false qaytaramiz


agar 1tadan oshiq bolmasa demak uning harfini replace yoki add qilib stringlarni bir xil qilsa boladi


👍 0 ❤️ 0 🔥 0

Izohlar 0

Izoh qoldirish uchun kiring yoki ro'yxatdan o'ting.

Hali izoh yo'q. Birinchi bo'ling!