A. Massivdagi juft raqamlar
Xotira: 32 MB, Vaqt: 1000 msRaqamlar massivini hisobga olgan holda, asl massivdan oxirgi juft raqamlarni o'z ichiga olgan uzunlikdagi yangi qatorni qaytaring (xuddi shu tartibda). Asl massiv bo'sh bo'lmaydi va kamida "raqamli" juft raqamlarni o'z ichiga oladi.
Birinchi qatorga massiv va son
len(massiv), \(0<len(massiv)≤1000\)
raqam, \(0≤raqam≤1000\)
Masalada so'ralgan javobni chop eting
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
1,2,3,4,5,6,7,8,9 3 |
4,6,8 |
2 |
-22,5,3,11,26,-6,-7,-8,-9,-8,26 2 |
-8,26 |
B. Pyramid Array
Xotira: 32 MB, Vaqt: 1000 msAgar >= 0 son berilganda, ortib boruvchi uzunlikdagi pastki massivlar massivini qaytaradigan funksiya yozing.
Birinchi qatorga \(n\) soni kiritiladi
Masalada so'ralgan javobni chop eting
Eslatma: pastki qatorlar 1 lar bilan to'ldirilishi kerak
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
0 |
[] |
2 |
1 |
[[1]] |
3 |
2 |
[[1],[1,1]] |
C. G'alati tartiblash
Xotira: 32 MB, Vaqt: 1000 msSizga raqamlar qatori beriladi. Siz toq raqamlarni o'sish tartibida saralashingiz va juft raqamlarni asl joyida qoldirishingiz kerak.
Birinchi qatorda array beriladi, \(0≤len(arr)≤100\)
Masalada so'ralgan javobni chop eting
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
7 1 |
1 7 |
2 |
5 8 6 3 4 |
3 8 6 5 4 |
3 |
9 8 7 6 5 4 3 2 1 0 |
1 8 3 6 5 4 7 2 9 0 |
D. Ekranni qulflash naqshlari
Xotira: 32 MB, Vaqt: 1000 msSiz geometrik naqshni xavfsizlik chorasi sifatida ishlatishga imkon beruvchi ko'plab smartfonlar bilan tanish bo'lishingiz mumkin. Qurilmani qulfdan chiqarish uchun ekran bo‘ylab naqshni o‘tkazayotganda barmog‘ingizni ko‘tarmasdan surish orqali to‘rdagi nuqta/nuqtalar ketma-ketligini ulashingiz kerak.
Quyidagi rasmda 7 nuqta/nuqta namunasi mavjud: (A -> B -> I -> E -> D -> G -> C).

Sizning vazifangiz ma'lum uzunlikka ega bo'lgan birinchi nuqtadan boshlab mumkin bo'lgan naqshlar sonini qaytaradigan funktsiyani amalga oshirishdir.
Aniqroq qilib aytganda, countPatternsFrom(firstPoint, uzunlik) funksiyasi uchun firstPoint parametri naqshlaringiz boshlanadigan to‘rdagi nuqtaga (masalan: “A”) mos keladigan bitta belgidan iborat qatordir va parametr uzunligi butun sonni ko‘rsatadi. har bir naqshda bo'lishi kerak bo'lgan nuqtalar soni (uzunligi).
Masalan, countPatternsFrom("C", 2), "C" dan boshlab ikkita ikkita nuqtaga ega naqshlar sonini qaytarishi kerak. Bu holatda qaytarish qiymati 5 bo'ladi, chunki 5 ta mumkin bo'lgan naqsh mavjud:
(C -> B), (C -> D), (C -> E), (C -> F) va (C -> H).
Shuni yodda tutingki, bu kata naqshlarning o'zini emas, balki naqshlar sonini qaytarishni talab qiladi, shuning uchun siz ularni faqat hisoblashingiz kerak. Bundan tashqari, funksiyaning nomi ishlatiladigan dasturlash tiliga qarab har xil bo'lishi mumkin, ammo g'oya bir xil bo'lib qoladi.
Birinchi qatorga HARF va SON
Masalada so'ralgan javobni chop eting
Qoidalar
Naqshda nuqta/nuqtalarni takrorlab bo'lmaydi: ular faqat bir marta, ko'pi bilan ishlatilishi mumkin.
Naqshda har qanday keyingi ikkita nuqta/nuqta to'g'ridan-to'g'ri to'g'ri chiziqlar bilan faqat quyidagi usullardan birida ulanishi mumkin:
Gorizontal: namunadagi rasmdagi (A -> B) kabi.
Vertikal: misol naqsh tasviridagi (D -> G) kabi.
Diagonal bo'yicha: misol naqsh tasvirida (I -> E), shuningdek (B -> I) kabi.
Ularning orasidagi "ishlatilgan" nuqtadan o'tish: misol namunasi tasvirida (G -> C) E orqali o'tish kabi. Bu eng qiyin qoida. Odatda, siz G ni C ga ulay olmaysiz, chunki E ular orasida, ammo E siz kuzatayotgan naqshning bir qismi sifatida ishlatilgan bo'lsa, siz E dan o'tuvchi G ni C ga ulashingiz mumkin, chunki E e'tiborga olinmaydi, chunki u allaqachon bir marta ishlatilgan.
Namuna testlarida kodingizni tekshirishga yordam beradigan ba'zi holatlar uchun kombinatsiyalar soniga misollar mavjud.
Haskell Eslatma: Vertex ma'lumotlar turi bitta belgili satrlar o'rniga taqdim etiladi. Batafsil ma'lumot uchun yechimni sozlash kodiga qarang.
Qiziqarli fakt:
Agar qiziqib qolgan bo'lsangiz, Android qulflangan ekrani uchun yaroqli naqshlar 4 dan 9 gacha nuqta/nuqta bo'lishi kerak. Jami 389112 ta mumkin boʻlgan yaroqli naqshlar mavjud; ya'ni uzunligi 4 va 9 nuqta/nuqta orasidagi naqshlar.
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
A 0 |
0 |
2 |
A 10 |
0 |
3 |
E 4 |
256 |
E. Satrning pastki qatorlarini hisoblash
Xotira: 32 MB, Vaqt: 1000 msYaqinda tug'ilgan kuningiz munosabati bilan sizning g'ayrioddiy do'stingiz sizga "happy birthday" deb xabar yubordi:
hhhappyyyy biirrrrrthddaaaayyyyyyy to youuuu
hhapppyyyy biirtttthdaaay too youuu
happy birrrthdayy to youuu
happpyyyy birrtthdaaay tooooo youu
Avvaliga bu qo'shiqqa o'xshaydi, ammo chuqurroq o'rganib chiqqach, do'stingiz o'z xabari ichida "tug'ilgan kuningiz bilan" iborasini minglab marta yashirganini tushunasiz. Aslida, u 2 million martadan ko'proq narsani o'z ichiga oladi! Unga minnatdorchilik bildirish uchun aynan necha marta sodir bo'lganligi haqida javob berishni xohlaysiz.
Barcha hodisalarni hisoblash uchun protsedura quyidagicha: paragrafni ko'rib chiqing va "h" ni toping; keyin xatboshida "a" ni toping; undan keyin "p" ni toping va hokazo. Endi to'liq iborani yaratish uchun shu tarzda harflarni tanlash usullari sonini hisoblang.
Aniqrog'i, matn qatori berilgan bo'lsa, siz qidiruv qatori ushbu qatorning pastki ketma-ketligi sifatida necha marta paydo bo'lishini aniqlashingiz kerak.
Ikki argumentni talab qiladigan countSubsequences funksiyasini yozing: igna, qidiriladigan satr va haystack, izlash uchun satr. Bizning misolimizda "happy birthday" - igna, tug'ilgan kun xabari esa pichan. Funktsiya pichanning pastki ketma-ketligi sifatida igna necha marta sodir bo'lishini qaytarishi kerak. Bo'shliqlar ham ignaning bir qismi hisoblanadi.
Javoblar juda katta bo'lishi mumkinligi sababli, agar u 8 raqamdan oshib ketgan bo'lsa, javobning faqat oxirgi 8 raqamini qaytaring. Test holatlarining javoblari 8 ta raqamdan qisqa bo'ladi.
Birinchi qatorga needle kiritiladi
Ikkinchi qatorda haystack kiritiladi
Masalada so'ralgan javobni chop eting
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
happy birthday appyh appy birth day |
1 |
2 |
happy birthday hhaappyy bbiirrtthhddaayy |
2048 |