146 / 205
LeetCode · MediumO'rta20 ball· ~25 daqiqa

String to Integer (atoi)

Boshlang'ich bo'sh joylarni e'tiborsiz qoldiradigan, ishorani tekshirib (agar mavjud bo'lsa), so'ngra barcha ketma-ket raqamlarni o'qib butun songa aylantiruvchi algoritmni yozing. Chegaralangan 32-bit oralig'ida ([-2^31, 2^31 - 1]) natijani saqlang.

example.go
func solve(s string) int {
    // ...
}

Misollar

kod
Input: s = "   -42"
Output: -42
kod
Input: s = "42"
Output: 42
kod
Input: s = "4193 with words"
Output: 4193

Maslahatlar

  1. Satrni belgidan-belgiga bosqichma-bosqich o'qing: avval bo'sh joylarni o'tkazib yuboring, keyin ishorani aniqlang, so'ng raqamlarni yig'ing — har bir bosqichda "keyingi belgi kutilgan turdami" deb tekshiring.
  2. Raqamlarni o'qish jarayonida natijani result*10 + raqam tarzida yig'ib boring va har safar 32-bit chegaradan (2147483647 yoki -2147483648) oshib ketishni tekshirib, oshsa darhol chegara qiymatini qaytaring; raqam bo'lmagan belgiga yetganda o'qishni to'xtatib, ishora bilan ko'paytirilgan natijani qaytaring.