134 / 205
LeetCode · MediumO'rta20 ball· ~30 daqiqa

Multiply Strings

Sizga ikkita manfiy bo'lmagan butun sonlarni ifodalovchi num1 va num2 satrlari berilgan. Ularning ko'paytmasini ham satr ko'rinishida qaytaring.

Eslatma: Tayyor BigInteger kutubxonalaridan yoki to'g'ridan-to'g'ri butun songa aylantiruvchi tayyor funksiyalardan foydalanmang. Ikkala son ham juda katta bo'lishi va standart butun son toifalariga sig'masligi mumkin.

example.go
func solve(num1 string, num2 string) string {
    // ...
}

Misollar

kod
Input: num1 = "2", num2 = "3"
Output: "6"
kod
Input: num1 = "123", num2 = "456"
Output: "56088"
kod
Input: num1 = "0", num2 = "1000000"
Output: "0"

Maslahatlar

  1. Maktabda qo'lda ko'paytirish usulini eslang: har bir raqamni boshqasining har bir raqamiga alohida ko'paytirib, natijalarni mos pozitsiyalarga qo'shib chiqish mumkin — bu uchun natijani xonalar (digits) massivi sifatida saqlang.
  2. Uzunligi m+n bo'lgan natija massivi tuzing; num1[i] va num2[j] ko'paytmasi natija massivining i+j va i+j+1 pozitsiyalariga ta'sir qiladi — har bir ko'paytmani mos joyga qo'shib, ortiqcha (carry) qismini chapdagi xonaga o'tkazing; oxirida boshidagi ortiqcha nollarni olib tashlab, raqamlarni satrga aylantiring.