ToCode
Kanalga Telegramโda oโtish
ืืืคืื ืงืฆืจืื ืืืชืื ืชืื ืืืช ืื ืื ืคืจืง
Ko'proq ko'rsatish1 419
Obunachilar
-124 soatlar
Ma'lumot yo'q7 kunlar
-430 kunlar
Postlar arxiv
1 419
ืขืื ืืืืชื ืืืจ
ืงืืื ืงืื ืืืืข ืืคืชืืจ ืืช ืื Advent Of Code ืฉื ืืฉื ื ืืฉืขืชืืื. ืื ืืืื ืืืชืจ ืืืจ ืืื ื ืืื ืจืื ืืืชืจ ืืืจ ืืจืื ืื ื ืืืื ืฉื ืืกื. ืืืื ืฉืืืืื ืืืื ืืฉืชืคืจืื ืื ืื ื ืืืื ืื ืืื ืืืชืจ ืืช ืืขืืืื ืฉืื ื ืืืื ืืกื ืชืืื ื:
1. ืคืชืจืื ืืขืืืช ืืืจืืืืช, ืืืื ืฉืื ืืืคืืขืืช ืืกืคืจ ืืืืืื, ืืืืจืฉืืช ืืื ืืืจืฆืื ืฉื ืืืืจ ืืืชืืื ืืืฉืืช ืฉื ืจืขืืื ืืช ืืืืืื ืืขืืื ืชืืื ืกืคืฆืืคื.
2. ืชืืฉืื - ืืืฆืื ืืจืืื ืืืืืืช ืืืืืืช ืืขืฉืืช ืืืจืื ืื ืืฉืืจืขืืื ืืจืืฉืื ืื ืขืืื.
3. ืขืืืืช ืฆืืืช.
4. ืชืงืฉืืจืช ืืืื ืขื ืขืืืชืื ืืื ืืืื.
5. ืืืื ืืช.
6. ืืื ื ืคืจืืืงื ืฉืืืคืฉืจ ืืืืืืืฆืื ืืืชืงืื ืืืชืจ ืืืจ ืขื ืืงืื - ืื ืืืื ืื ืืช ืืงืื ืขืฆืื ืืื ืืงืืช ืกืืืืช ืืืืงืืช, ืืกืืืื ืืืืืื, ืืืืืช ืืืจืื ืคืจืืืงื ืืืืืฆื ืืืช ืืกืืืื ื ืืืืจืืืช, ื ืชืื ื seed.
7. ืืื ืช ืืืกืืจืช, ืืืืืืืช, ืืืืืืืช, ืืืจืืื.
ืืจืืืื ืงืืืื ืืคืืฆ'ืจืื ืืืืืืื ืฉืืคืชืืื ืฆืจืืืื ืืื ืืช ืื ืคืืชืืื ืชืฉืชืืช. ืื ืื ืฉืืื "ืขืื ืืืืชื ืืืจ" ื ืืชื ื AI, ืขืืืฃ ืืื ืฉื ืคืจืืืงืืงื ืืื ืืื ืืืืืฉืจืื ืฉืืฉืืื ืืฉืืง ืขื ืืืืื ืืืืฉืื. ืฉืชื ืืฉืืืืช ืืืฉืืืืช ืฉืื ืื ื ืืืืืื ืืฉืืื ืืืื ืขื ืื ืคืืฆ'ืจ ืฉืื ืื ื ืืื ืื:
1. ืืื AI ืืืื ืืื ืืช ืืช ืื?
2. ืื ืื, ืืื ืฆืจืืื ืืืืจืืืช ืืืขืจืืช ืืื ืฉ AI ืืืื ืืื ืืช ืืช ืื?
1 419
ืื ื AI ืืขื ืืฉื ืฉื ืืคืื ืงืฆืื
ืืื ืืืืืืื ืืช ืงืืื? ืืกืชืืจ ืฉืืงืืืช ืืืคืืื ืืื ืืืชืืืื. ืื ืืงืื ืฉืืื ืฆืจืื ืืืชืื:
token_translations.each do |tt|
word = tt.original_text
translation = tt.translation
ืจืืืื ืืช ืืืขืื? ืืคืืื ืืคื ื ืฉืงืืื ืืชืืื ืืืืฉ ืื ืื ื ืืืื ืื ืฉืืฉืื ืื ืืกืชืืจ, ืืื ืฆืจืื ืืช ืืกืืืืช _text ืื ืื? ืืืื ืืฉืืืงืฉืชื ืืงืืื ืืืืฉ ืืช ืืืืืื ืืืงืื ืืืจ ืืื ืืชื:
token_translations.each do |tt|
word = tt.original_text
translation = tt.translation_text
ืืื ื ืืคืืื ืื ืืืื ืืืืฉืื ืืืชื. ืื ื ืจืื ืื ืื ืืืชืจ ื ืืื ืืื.
ืงืื ืฆืคืื ืืื ืงืื ืงืจืื ืืืชืจ ืืืืืคื. ืืฉ AI ืืืขื ืืฉื ืืคืื ืงืฆืื ืื ืืื ืืืงืฆืื ืืฉืืื ืืืขืืืช ืงืจืืืืช. ืืืขืช ืืขืืื ืขื AI ืื ืื ืื ืืืชืื ืงืืืฅ Instructions ืืืืืืจ ืืืืกืืฃ ืืื ืคืจืืืคื ืฉืืื ืฆืจืื ืืืืื ืืช ืืฉืืืช ืฉื ืืคืื ืงืฆืืืช. ืืืขืช ืืขืืื ืขื AI ืื ืงืืื ืื ืืฉืื ืื ืฉืืืขืืช ืฉืื ืืื ืืืืื ืืช ืืืืจื ืืื ืืชืงื ืืช ืืคืจืืืงื.1 419
1. ืกืืืื ืืื ืฉืืขืฉืืจ ืืงืจืื ื ืืฉืื ืืจืืืช ืืช ืฉื ื ืกืืื ืืชืคืงืืืื. ืืืื ืื ืืขื ืื ืฉืื ืฉืืืื ืกื ืืงืื ืืื ืืชื ืืืืืื ืืช ืืืืื ืืืื ื ืฉื ืืื ืืืจืื ืื ืืืื ืืขืืืืื ืื ืืกืืื ืฉืืืื ืืงืืช. ืืฉ ืคื ืื ืืจืื ืืืฃ. ืืืื ืื ืื ืืขื ืื ืฉืื ืฉืืืคืืื ื ืืขืจืืืช ืืคืืฆ'ืจืื ืืกืืื ื AI ืืื ืืชื ืืกืื ืืื ืฉืื ืฉืืืืืื ืืชืื ื ืื ืืื ืืช ืืืืื ืฉืืื ืื ืจืื ืืืื ืืจืื ืืืชืจ ืืขื ืืื ืื ืืืืืช ื AI. ืืืื ืื ืื ื ืงืืจืืื ืืชืคืงืืืื ืืืกืื ืืจืืฉืื ืืคืชืื ืชืืื ื ืืืืกืื ืืฉื ื ืื ืืื ืืืฆืจ, ืืื ืืืืืืื ืืกืคืฆืืคืืื ืฉื ืื ืชืคืงืื ืืืืืื ืืืืืื ืืืฉืชื ืืช.
2. ืื ืืขืืื ืฉื ืคืืชืื ืชืืื ื ืืขื ืืื ืืชืื ืืืื ืืืกืชืื ืขื AI ืืชืืจ "ืืืจื" ืืื ืืชืืจ "ืขืืื". ืืชื ืื ืืชืืจืืช ืืืชื, ืืชื ืื ืฆืจืืืื ืืืืื ืื ืฉืืจืช ืงืื ืืืืืืช ืืกืืืืื ืืืชืื ืื ืืขืจืืช ืืขืฆืืื.
3. ืืคืชืื ืชืืื ื ืขืืืื ืืืืืื ืืื ืืื ืืจื ืืงืืื. AI ืื ืืฉื ื ืืช ืื. ืืืื ืืืฉืื ืขื AI ืืื ืกืคืจ ืืืืื ืืื ืืื ืืืฉืืื.
ืืืืืจ ืืืคืชืื ืืืืชื ืืืืจ - ืืชื ืฆืืืง. ืื ืื ืฉืืชื ืืืชื ืืืื ื AI ืืืชื ืืื ืืืชืจ. ืืจืืข ืืืืืฅ ืื ื ืจืื ืืืืื AI ืืืชื ืงืื ืืืชืจ ืืื ืืืืชืจ ืืืจ ืืื ืืื ืฉืื ืฉืืชื ืืืืจ ืืงืฉื ืืืืื ืืื ืฆืจืื ืืชืื ืชืื ืืขืืื. ืืื ืืืจืื ืฉืจืืืื ืืืื ืื ืจืืืื ืืฉื ืืืืืช ืืื ืฉืืื ื ืืขืจืืชืืช, ืืืืจืืช ืืขืืืง ืขื ืขืืื ืคืืชืื ืืชืืื ื ืืืขืืงืจ ืืืืืช ื ืืชืื ืืืฉืืื ืขื ืืืืฉืืื ืืขืืื ืื ืืื ืขืืืื ืจืืืงื ืืืืืืืืช ืฉื ืืขืจืืืช AI. ืืืืื ืืกืืื AI ืืขืื ืืช ืืจืฃ ืืืืืืจ ืืช ืงืฆื ืืืืืื ืืืคืฉืจื. ืืืืืช ื AI ืืชื ืืืื ืืืชืจ ืืืจ, ืืื ืื ืื ืื ืืืชืืจืื ืฉืื ืฉืืชืืืืืื ืขื ืืืชื ืชืคืงืืืื ืืชืขืฉืืื.
ืืืืืชื ื ืืฉื ืฉืืื ืืงืจืื ืื ืืช ืืคืืกื ืืืืจืื ืฉื ืืกืืืืืืช:
https://www.hasolidit.com/ืืืื-ืงืืืื ื-ืืขืฆืืืืช-ืืืืืืช. ืฉืืืช ืืืคืชื ืฉืื:
"ืื ืืืืืื ืืืื ื ืืืืื โืืฉืืืโ ืืืืื ืืช ืืืื ืฃ ืจืืข, ืืืืืช ืฉืืืจืื ืืฉืงืืขื ืฉื ืื ืืื ืืจืืืฉ ืืืคืชื, ืืื ืขืื ืืคืฉืจ ืืืื ืืืชืืืืก ืืืื ืืืืืื ืืช?"
ืื ื ืืืื ืืื ืื ื ืจืื ืืื ืืืืืฅ. ืืืคื ืื ืื ืื ื ืืืืขืื ืฉืจืื ืืืืื ืฉื ืืืคืชืืื ืืชืขืฉืืื ืื ืืื ืื ืืขืจืืืช ืฉืืคืฉืจ ืืืืืืฃ ืขื Vibe Coding. ืืฉืืชืืื ืืจื ื ื Outsource ืืืจ ืืืืืจ ืืืชื ืฉืขืื ืจืืข ืื ืืืื ืืืจืฅ ืืคืชืื ืชืืื ื ืื ืืื ืืขืืืจ ืืืืื. ืขืืจื ืืืขื 20 ืฉื ื ืืื ืื ื ืขืื ืคื ืืขืืืื ืืืชืืื ืงืื. ืื ืืืื ืงืืืื ื ืื ืืืืืง ืืื ืื ืจืืืง ืืืืืื ืขื ืืขืืื ืฉื ืคืืชืื ืชืืื ื.
ืื ืืขืชืื? ืื ืืืืชื ืืชืืืืื ืืืื ืืืืื ืชืื ืืช ืืืืชื ืืขืืืคืื ืืจืืฅ ืืืื ืืช ืคืจืืืงืืื ืขื AI ืืชืืจ ืขืืื ืื ืืืืื ืื ืขืืฉื ืื ืฉืืจื ืขื AI ืืชืืจ ืืืจื? ืืืื?
1 419
ืืืืืื ืชืื ืืช ืขื AI - ืื ืืืชืจ ืงื, ืื ืืืชืจ ืงืฉื ืืืื ืื ืืืื
ืืืจ ืฉืืื - ืื ื ืจืืฆื ืืืืื ืชืื ืืช ืืื ืื ืืืื ืื ืืฉ ืืขื. ืื ื ืจืืฆื ืืขืืื ืืคืืชืื ืืื ืื ืื ืฉืื ื ืจืืฆื ืืืชืื ื AI ืืืชื ืืื ืืืชืจ. ืื ืฆืจืื ืืืชื ืฉื ืืืื?
ืืืื ื ืชืืื ืืืฉืื ืืช ืืงืืคืื ืขื ืืฉืืืื: ื'ืืื ื ืืืืข ืืืื ืืืชืื ืืฉืืง ืกื ืืืง ืืืชืจ ืืื ืืืืชืจ ืืืจ ืืื ืฉืื ื ืืืชื. ืงืืื ืืชื ืื ืืฉืืง ืืจืืืกืืืช ืืืืืื ืกืคืจืืืช ืขื ืื ืื ืื Spaced Repetition ืืฉืื ืืืืืข ืฉืืืจ ืืงืืฆื ืืงืกื ืืืชืจืืื ืืฉืืจืช ืืคืงืืื (ืจืืกื ืืืืื). ืื ืืืื ืืืื ืืืืื ืฉืืืจ ืืืื ืื ืืขืชืื ืืืืื ืงืจืื ืื ืืขื AI ืืืืื ืืคืชืืจ ืื ืชืจืืื ืชืื ืืช ืฉื ืืืช ืกืคืจ ืืืชืจ ืืื ืืืชืืืืืื ืืื ืจืื ืื ืืืชืจ ืืื ืืืืืจื.
ืขืืฉืื ืื ืื ืืืืจ ืขืืื ื?
ืื ืืืชืจ ืงื
ืขืืจื ืืืื ืืืืื ืืื ืื ืื ื ืฆืจืืืื ืืืืืข ืจืง ืืื ืฉืชืืื ืืช ืชืชืงืืคื, ืชืจืืฅ ืื ืืคืืื ืชืืืืจ ืชืฉืืื ื ืืื ื. ืืฉ ืื ืืขืืืช ืงืืืคืืืฆืื? ืชืืืืง ืืืชื ื AI ืืชืงืื ืืกืืจ ืืื ืืืขืื (ืืืื ืืคืฉืจืืช ืืฉืืื ืฉืืืืช ืืืฉื). ืืชืืื ืืช ืืชืจืกืงื ืืืื ืืขืืืช ืืืจืื? ื AI ืืืฆื ืื ืืช ืืืขืืช. ืืชืืื ืืช ืื ืืืืืจื ืืช ืืชืฉืืื ืื ืืื ื? ื AI ืืกืืืจ ืืื. ืืชืืื ืืช ื ืจืืืช ืขืืืืช? ืืื ื ืืชื ื AI ืืงืจืื ืืืืืื ืฉืืื ื ืืื ื 100% ืืืืฆืืข ืฉืืคืืจืื. ืืืืืืืื ืขื ืืงืฆืคืช - ืืืจื ืฉืืืจ ืกืืืืชื ืืช ืื ืืชืจืืืืื ืื ื ืืืื ืืืงืฉ ื AI ืืืืฆืจ ืื ืงืืืฆื ื ืืกืคืช ืฉื ืชืจืืืืื ืืื ืืืืื ืฉืืื ืชื ืืื.
ืื ืฉืจืืฆื ืืืืื ืืืื ืืงืื ืืืื ืืืจื ืคืจืื 24/7 ืฉืืกืืืจ ืื ืคืจื ืืืืืจ ืืช ืื ืืืืกืืืจืื. ืื ื ืืื ืื ืืขื AI (ืืืขืชื) ืื ืืกืคืืง ืืืืื ืืื ืืืช ืกืืืืืก ืื ืืืกืืจ ืืืคืก, ืืื ืืชืืจ ืืืฆืจ ืืฉืืื ืืงืืจืก ืื ืืฉืคืจืื ืื ืืืืื ืืืืืืืช.
ืื ืืืชืจ ืงืฉื
ืืืขืื ืฉืื ืื ื ืื ืืฆืืืืื ืืขืฆืืจ ืฉื. ืืืืืื ืืืืืืืืช ืืื ืืฉืืช ืฉื ืืืืจื ืืขืจืืช ืืืื ืื ืืื ืืจืืฃ ืืืจื ืืฆืืืืช ืงืื ืืช, ืืจืืฅ ืืื ืืกืื V ืืืืฆืืื ืืืืื. ืืขืืื ืฉื AI ืืืช ืืขืื, ืื ืื ืชืจืืื ืืืืืื ืฉืชื ืกื ืืขืฉืืช ื AI ืืืื ืืคืชืืจ ืืฉืืืืื ืืืชืจ ืืืจ.
ืืืขืื ืืืืช ืืืื ืืืขืื ืฉื ืชืืืืื ืืกืืื ืขื ืืืฉืืื. ืื ืื ืืืื ืื ืืื ืืืชืืืฅ ืืคืชืืจ ืชืจืืื ืืฉืืื ืืื ืืืฉืืื ืืื ืื ื ืื ืืืื ืื ืืื ืืืชืืืฅ ืืืชืื ืชืืื ืืช ืืื AI. ืืื ืืืืื ืืื ืชืืืื: ืชืืืืื ืืืช ืกืคืจ ืืกืืื ืืืืืื ืื ืื ืืืืขืื ืฉืืืืื ืืืืจื ืื ืชืชื ืืื ืืืฉืชืืฉ ืืืืฉืืื, ืืื ืื ืขืื ืงืื ืื. ืื ืฉืืืื ืชืื ืืช ืืืฉื ืขื ืืืคืฆืืืช ืืชืขืกืืงื ืืืจืืข ืงืฉื ืื ืืืื ืืจืืืช ืืืื ืขืจื ืืื ืืงืื ืืืืืืื ืชืื ืืช. "ืื ืื ืื ืฉืื ื ืืขืฉื ืื ืืืื? ืืืื ื AI ืืืื ืงืื ืืืชืื?".
ื AI, ืืื ืฉืืืคื ืืช ืืืืืื ืืชืื ืืช ืืืจืื ืืืชืจ ืงืืื, ืืืจืื ืืฉืืขืืชืืช ืืืืืืืืฆืื ืืืืื. ืืืื ืฉืื ืื ื ืื ืืืืขืื ืืื ืืจืื ืืืืื ืืืงืฆืืขืืื ืฉื ืืคืชืื ืชืืื ื ืืขืื ืฉื ืชืืื ืื ืื ื ืืจืืืฉืื ืฉืงืฉื ืืืชืืืื ืืืืืื ืชืื ืืช, ืฉืืืื ืื ืืืื ืื ืฆืืจื.
ืืืื ืืืช
ืืชืื ืชืื ืืืื ืฉืขืืืืื ืขื AI ืืชืืืงืื ื-2. ืืฉ ืืช ืื ืฉืืฉืชืืฉ ื AI ืืื ืืืฉืชืคืจ, ืืืื ืื ืฉืืจื ืฉื AI ืืืชื ืืืืื ืฉื AI ืืืชืื ืืช ืืงืื ืฉืืื ืืื ืืืชื ืืขืฆืื. ืื ื AI ืืืชื ืืืงื ืืฉืืง ืกื ืืืง ืฉืืื ืืืงื ืื ืืื ืืืชืื ืืื ืืืืื, ืืื ืืืื ืฉืืชืืชื ืืืจ ืืฉืืงื ืกื ืืืง ืืืืื ืื ื ืืืื ืืืกืชืื ืขื ืืฉืืง ืืกื ืืืง ืฉื AI ืืชื ืืืืืื ืฉืืื ืืื ืืื ืฉืื ื ืืืืชื ืืืชื. ืื ื AI ืืืชื ืืืฃ ืืืืงืืช ืืืชืจ ืืืจ ืืื ืฉืืืงื ืื ืืฉืื ืืืก ืงืคื, ืืื ืืกืคืืง ืื ืืจืืฅ ืขื ืืืืืงืืช ืืืื ืืขืื ืืื ืืงืืช ืืื ืืืืื ืื ืืื ืืื ืืืืืื ืื ืื ืฆืจืื ืืืขืืฃ ืืช ืื ืืืืืงืืช ืืืืืฆืจ ืืืชื ืืืืฉ ืขื ืคืจืืืคื ืืืชืจ ืืืืืง.
ืกืื ืฉื ื ืฉื ืืคืชืืื ืืขืืืคืื ืืืื ืขื ืืงืื ืืืืชืืงื ื Spec ืืฆื ืืื ืื Output ืืฆื ืฉื ื. ืื ืื ืกืื ืืื ืขื ื AI ืืคืจื ืืืืงืืช ืืืืืง ืืืืชื ืืฉืืง ืกื ืืืง ืืื ืืืืืื ืฉืืงืื ืขืืฉื ืื ืฉืฆืจืื ืืคื ืืืคืจื. ืื ืื ืจืืฆืื ืืืขืช ืื ืืชืื ืฉื ืืืืืื ืืจืืืฉืื ืฉืื ืืืืื ืืื. ืื ืฆืจืื ืืืืื ืื ืื ืขืฅ ืืืื ืฉืืืจ ืืืชื ืืืฉืชืืฉ ืื ืืืขืจืืช ืืืืชืืช, ืืกืคืืง ืืืคืืื ื AI ืื ืจืืช ืืืืฆืืขืื ืื ืืจืฉืช ืืฉื AI ืืืืจ ืืืื ืืื ื ื ืชืื ืื ืืชืืื.
ืืฆืจืื ืืืืื ืืืืฉืจ, ืื ืื ื ืื ืืืืขืื ืืื ืืจืื ืืืืื ืืืงืฆืืขืืื ืฉื ืืคืชืื ืชืืื ื ืืขืื ืฉื ืชืืื, ืืจืืข ืื ืฉืืื ื ืฉื ืื, ืืื ืื ืืืื ืืืชืจ ืืืืื ืืชืืืืจ ืืจืืฉืื ืื ืืฉื ื. ืื ืชืืืืจ ืืชืืื ืืขืืืื ืืืจืช, ืืื ืื ื ืฆืจืืืื ืืืืืจ "ืื ืื ืื ื ืจืืฆืื ืืืืืช" ืืื ืืืขืช ืื ืืืืจ ืฉื ืืืจ ืืืื ืืืื ืงืืื ืืฉื ืกืืื ืืช ืืืืืืืื.
ืืืื ืืืช, ืฉื ื ืืชืืืืจืื ืื ืขืืืจืื ืื ื ืืชืื ื ืงืฆืช ืืืชืจ ืืืืจืืจ ืืช ืืืืฉื. ืื ื ืื ืงืืืืช ืืืจืืืืืช ืฉืืืืชื ืืฉืืืจ ืืจืืฉ:
1 419
ืคืชืจืื AoC 2025 ืืื 5 ืืืืช ืืืืืืื
ืืชืืื ืืชืืชื ืขื ืืืืงืช
cover? ืฉื ืจืืื ืืืืื ื ืจืื ืืื ืืื ืขืืืจืช ืื ื ืืคืชืืจ ืืขืื ืืืืชืืช ืืชืื Advent Of Code ืืืืจืื ืืื ื ืืชืืืื ืืืืง ืืฉื ื ืฉื ืืื 5. ืื ืฉืืืืชื ืืืืง ืืื ืืื ืฉืืฉื ืืกืืชื ืืงืืช ืืช ืืคืชืจืื ืฉื ืืืง 1 ืืืืจืืื ืืืชื ืืืืง 2 ืื ืคืฉืื ืื ืขืื ืืื ืืื ืชื ืืช ืืืขืืช ืฉืืืชื ืื ืืืืง 1. ืืื ืืืื ืื ื ืงืืื ืืช ืืืืืืจ ืื ืื ืืจืืืช ืืช ืืชืจืืื.
ืืืง 1 ืืืคืืฉ ืืืจืื ืฉืื ืืฉืื ืืืื
ืืืืง ืืจืืฉืื ืฉื ืืชืจืืื ืงืืืื ื ืจืฉืืื ืฉื ืืืืืื ืืจืฉืืื ืฉื ืืืืื ืืืืื ื ืฆืจืืืื ืืืฆืข ืืืืงืช ืงืืื ืืืืืจ ืืจืืืช ืื ืืืคืจืืืื ืื ื ืืฆื ืืฉืื ืืืื. ืืืื ืฉ Range ืชืืื ืืืืืงืช ืฉืืืืืช ืืืืจื ืื ืืื ืงื ืืืืจื ืคืขื ืื ืืงืื ืืคืฉืจ ืืื ืืืจืืฅ:
def part1
@to_check.count {|i| @fresh_ids.any? {|r| r.include?(i) } }
end
ืืืฉืจ @to_check ืื ืจืฉืืืช ืืขืจืืื ืฉืฆืจืื ืืืืืง, @fresh_ids ืื ืจืฉืืืช ืืืืืืื ื include? ืืืืง ืื ืืืื ืืืื ืืกืคืจ. ืืฉ ืคื ืืืืื ืืคืืื ืฉืจืฆื ืขื ืื ืืื ืืืืกืคืจืื ืืืืืง ืืืืืงืช ืืืชื ืืื ืื ืืื ืืืืืืืื.
ืืืง 2 ืืืคืืฉ ืื ืืืืจืื
ืืืืง ืืฉื ื ืืชืืงืฉื ื ืืกืคืืจ ืืื ืืืื ืืื ืฉืื ืื ืืืืืื ืืื ืืืืืืื. ืืืืืื ืขืืืจ ืจืฉืืืช ืืืืืืื:
3-5
10-14
16-20
12-18
ืืชืฉืืื ืืื 14 ืืืืืจ ืืืกืคืจืื 3, 4, 5, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 ื 20.
ืคื ืืืจ ืืจืืจ ืฉืืืืืื ืืืคืืื ืื ืชืขืืื ืื ืืงืื ืืืืชื ืืฉ ืืืชืจ ืืื ืขืจืืื ืืืืืง. ืื ืืคืจืง ืืช ืืืืืืื ืืืกืคืจืื ืฉืืื ืืืกื ื ืืคืืืื (ืืจืขืืื ืืฉื ื ืฉืื) ืืืื ืืืืื ื ืืื ืืฆืืื ืืืชืืืื ืขื ืืงืื ืืืจืื. ืื ืขืืฉืื? ืืืืจืื ืฉืืืืืื ืื ืจืฆืืคืื ืืืื ืืืืจื ืฉืื ื ืืื ืืื ืืช ืจืฉืืื ืฉื ืืืืืื ืืื ืืคืืคืืช, ืืืืืจ ืืช ืจืฉืืืช ืืืืืืื ืืืืืืื ื ืจืฆื ืืืคืื ืืจืฉืืื:
3-5
10-20
ืืื ืขืืฉืื ืืช ืื? ืืชืืืืื ืขื ืจืฉืืื ืจืืงื, ืื ืคืขื ืฉืงืืจืืื ืืืื ืืืคืฉืื ืืช ืื ืืืืืืื ืฉืืชื ืืฉืื ืืืชื (ืื ืฉืื ืืืืืื ืืืชื, ืื ืฉืืื ืืืื ืืืชื, ืื ืฉืื ืืืืืื ืืช ืืืชืืื ืฉื ืืืืื ืืืืฉ ืื ืืช ืืกืืฃ ืฉืื), ืืืืงืื ืืืชื ืืืืืฆืจืื ืืืื ืืืฉ ืฉืืืื ืืช ืื ืื ืฉืืืงื ื ืืืช ืืืืจ ืืืืฉ. ืืืืจืื ืขื ืื ืืืืืื ืขื ืฉืืืกืื ื ืืช ืื ืืืืืืื. ืื ืืงืื:
def add_range(r)
affected, unaffected = ranges.partition do |range|
range.cover?(r) || r.cover?(range) || range.cover?(r.begin) || range.cover?(r.end)
end
self.ranges = unaffected
new_range = ([*affected, r].map {|r| r.begin }.min)..([*affected, r].map {|r| r.end }.max)
return add_range(new_range) unless affected.empty?
self.ranges << r
end
ืืื ืืื ืฉืฆืจืืืื ืืกืืจ ื ืืกืฃ ืืืืื ืื ืืืืืืง ืืช ืืคืื ืงืฆืื ืืื ืืข AI ืืืืืจืชืื ืืืืงืฉ ืืกืืจ ืืืื ืืืืืืืช ืืืืื ืฉืืชืืฆืื ืืขื ืืื ืช.
ืกื ืืื ืื ืืงืื ืืืื ืฉื ืืคืชืจืื:
require 'set'
class RangeSet
attr_accessor :ranges
def initialize
@ranges = []
end
def add_range(r)
affected, unaffected = ranges.partition do |range|
range.cover?(r) || r.cover?(range) || range.cover?(r.begin) || range.cover?(r.end)
end
self.ranges = unaffected
new_range = ([*affected, r].map {|r| r.begin }.min)..([*affected, r].map {|r| r.end }.max)
return add_range(new_range) unless affected.empty?
self.ranges << r
end
end
class Day5
attr_accessor :fresh_ids, :to_check
def initialize(fname)
fresh_ids, to_check = File
.read(fname)
.lines
.map {|l| l.strip }
.slice_when {|e1, e2| e1.empty? }
.to_a
@fresh_ids = fresh_ids.reject(&:empty?).map do |r|
r.split("-").map(&:to_i).then {|a| Range.new(*a) }
end
@to_check = to_check.map(&:to_i)
end
def part1
@to_check.count {|i| @fresh_ids.any? {|r| r.include?(i) } }
end
def part2
stock = RangeSet.new
@fresh_ids.each {|r| stock.add_range(r) }
stock
end
end
if $PROGRAM_NAME == __FILE__
d = Day5.new("input.txt")
pp d.part1
pp d.part2.ranges.map {|r| r.size }.sum
end1 419
ืคืชืจืื AoC 2025 ืืื 5 ืืืืช ืืืืืืื
ืืชืืื ืืชืืชื ืขื ืืืืงืช
cover? ืฉื ืจืืื ืืืืื ื ืจืื ืืื ืืื ืขืืืจืช ืื ื ืืคืชืืจ ืืขืื ืืืืชืืช ืืชืื Advent Of Code ืืืืจืื ืืื ื ืืชืืืื ืืืืง ืืฉื ื ืฉื ืืื 5. ืื ืฉืืืืชื ืืืืง ืืื ืืื ืฉืืฉื ืืกืืชื ืืงืืช ืืช ืืคืชืจืื ืฉื ืืืง 1 ืืืืจืืื ืืืชื ืืืืง 2 ืื ืคืฉืื ืื ืขืื ืืื ืืื ืชื ืืช ืืืขืืช ืฉืืืชื ืื ืืืืง 1. ืืื ืืืื ืื ื ืงืืื ืืช ืืืืืืจ ืื ืื ืืจืืืช ืืช ืืชืจืืื.
ืืืง 1 ืืืคืืฉ ืืืจืื ืฉืื ืืฉืื ืืืื
ืืืืง ืืจืืฉืื ืฉื ืืชืจืืื ืงืืืื ื ืจืฉืืื ืฉื ืืืืืื ืืจืฉืืื ืฉื ืืืืื ืืืืื ื ืฆืจืืืื ืืืฆืข ืืืืงืช ืงืืื ืืืืืจ ืืจืืืช ืื ืืืคืจืืืื ืื ื ืืฆื ืืฉืื ืืืื. ืืืื ืฉ Range ืชืืื ืืืืืงืช ืฉืืืืืช ืืืืจื ืื ืืื ืงื ืืืืจื ืคืขื ืื ืืงืื ืืคืฉืจ ืืื ืืืจืืฅ:
def part1
@to_check.count {|i| @fresh_ids.any? {|r| r.include?(i) } }
end
ืืืฉืจ @to_check ืื ืจืฉืืืช ืืขืจืืื ืฉืฆืจืื ืืืืืง, @fresh_ids ืื ืจืฉืืืช ืืืืืืื ื include? ืืืืง ืื ืืืื ืืืื ืืกืคืจ. ืืฉ ืคื ืืืืื ืืคืืื ืฉืจืฆื ืขื ืื ืืื ืืืืกืคืจืื ืืืืืง ืืืืืงืช ืืืชื ืืื ืื ืืื ืืืืืืืื.
ืืืง 2 ืืืคืืฉ ืื ืืืืจืื
ืืืืง ืืฉื ื ืืชืืงืฉื ื ืืกืคืืจ ืืื ืืืื ืืื ืฉืื ืื ืืืืืื ืืื ืืืืืืื. ืืืืืื ืขืืืจ ืจืฉืืืช ืืืืืืื:
3-5
10-14
16-20
12-18
ืืชืฉืืื ืืื 14 ืืืืืจ ืืืกืคืจืื 3, 4, 5, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 ื 20.
ืคื ืืืจ ืืจืืจ ืฉืืืืืื ืืืคืืื ืื ืชืขืืื ืื ืืงืื ืืืืชื ืืฉ ืืืชืจ ืืื ืขืจืืื ืืืืืง. ืื ืืคืจืง ืืช ืืืืืืื ืืืกืคืจืื ืฉืืื ืืืกื ื ืืคืืืื (ืืจืขืืื ืืฉื ื ืฉืื) ืืืื ืืืืื ื ืืื ืืฆืืื ืืืชืืืื ืขื ืืงืื ืืืจืื. ืื ืขืืฉืื? ืืืืจืื ืฉืืืืืื ืื ืจืฆืืคืื ืืืื ืืืืจื ืฉืื ื ืืื ืืื ืืช ืจืฉืืื ืฉื ืืืืืื ืืื ืืคืืคืืช, ืืืืืจ ืืช ืจืฉืืืช ืืืืืืื ืืืืืืื ื ืจืฆื ืืืคืื ืืจืฉืืื:
3-5
10-20
ืืื ืขืืฉืื ืืช ืื? ืืชืืืืื ืขื ืจืฉืืื ืจืืงื, ืื ืคืขื ืฉืงืืจืืื ืืืื ืืืคืฉืื ืืช ืื ืืืืืืื ืฉืืชื ืืฉืื ืืืชื (ืื ืฉืื ืืืืืื ืืืชื, ืื ืฉืืื ืืืื ืืืชื, ืื ืฉืื ืืืืืื ืืช ืืืชืืื ืฉื ืืืืื ืืืืฉ ืื ืืช ืืกืืฃ ืฉืื), ืืืืงืื ืืืชื ืืืืืฆืจืื ืืืื ืืืฉ ืฉืืืื ืืช ืื ืื ืฉืืืงื ื ืืืช ืืืืจ ืืืืฉ. ืืืืจืื ืขื ืื ืืืืืื ืขื ืฉืืืกืื ื ืืช ืื ืืืืืืื. ืื ืืงืื:
def add_range(r)
affected, unaffected = ranges.partition do |range|
range.cover?(r) || r.cover?(range) || range.cover?(r.begin) || range.cover?(r.end)
end
self.ranges = unaffected
new_range = ([*affected, r].map {|r| r.begin }.min)..([*affected, r].map {|r| r.end }.max)
return add_range(new_range) unless affected.empty?
self.ranges << r
end
ืืื ืืื ืฉืฆืจืืืื ืืกืืจ ื ืืกืฃ ืืืืื ืื ืืืืืืง ืืช ืืคืื ืงืฆืื ืืื ืืข AI ืืืืืจืชืื ืืืืงืฉ ืืกืืจ ืืืื ืืืืืืืช ืืืืื ืฉืืชืืฆืื ืืขื ืืื ืช.
ืกื ืืื ืื ืืงืื ืืืื ืฉื ืืคืชืจืื:
require 'set'
class RangeSet
attr_accessor :ranges
def initialize
@ranges = []
end
def add_range(r)
affected, unaffected = ranges.partition do |range|
range.cover?(r) || r.cover?(range) || range.cover?(r.begin) || range.cover?(r.end)
end
self.ranges = unaffected
new_range = ([*affected, r].map {|r| r.begin }.min)..([*affected, r].map {|r| r.end }.max)
return add_range(new_range) unless affected.empty?
self.ranges << r
end
end
class Day5
attr_accessor :fresh_ids, :to_check
def initialize(fname)
fresh_ids, to_check = File
.read(fname)
.lines
.map {|l| l.strip }
.slice_when {|e1, e2| e1.empty? }
.to_a
@fresh_ids = fresh_ids.reject(&:empty?).map do |r|
r.split("-").map(&:to_i).then {|a| Range.new(*a) }
end
@to_check = to_check.map(&:to_i)
end
def part1
@to_check.count {|i| @fresh_ids.any? {|r| r.include?(i) } }
end
def part2
stock = RangeSet.new
@fresh_ids.each {|r| stock.add_range(r) }
stock
end
end
if $PROGRAM_NAME == __FILE__
d = Day5.new("input.txt")
pp d.part1
pp d.part2.ranges.map {|r| r.size }.sum
end1 419
ืืืื ืืืืชื: ืืืืงืช ืฉืืืืืช ื Range ื Ruby
ืชืืื ืืฉืชืืฉืชื ื
include? ืืื ืืืืืง ืื ืืกืคืจ ื ืืฆื ืืืืื ืืกืืื ืืืงืื ืืื ืขืืื ืืื ืืขืื:
3.3.5 :007 > (1..10).include?(5)
=> true
ืจืืื ืื ืืชืืืฅ ืืขืืืจ ืืืืจ-ืืืืจ ืืืืื ืืืืจ ืืื ืืืื ืฉื ืืกืคืจืื ืฉืืืื ื-5 ืืื ืืกืคืจ ืฉืื ืื ืืกืคืืง ืืืืืง ืฉืืื ืืืื ืืืืชืืื ืืงืื ืืืกืืฃ. ืืื ืงื ืืจืืืช ืืช ืื ืืฉืืืคืฉืื ืฉืืจ ืืชืื ืืืืื:
3.3.5 :010 > (1..10).include?(4.5)
=> true
ืืฉืืจืืจ ืฉืื ื ื ืกื ืืขืืืจ ืืืืจ-ืืืืจ ืื ื ืืฆื ืืช ืืจืืข ืืืฆื:
3.3.5 :011 > (1..10).to_a.include?(4.5)
=> false
ืืฉืืืข ื ืชืงืืชื ืืืงืจื ืืคืื ืงืฆืื conver? ืฉื ืจืืชื ืืืืื ืขืืฉื ืืืชื ืืืจ:
3.3.5 :008 > (1..10).cover?(5)
=> true
3.3.5 :009 > (1..10).cover?(4.5)
=> true
ืื ืืื ืื ืฆืจืืื ืืจืืฅ ืขื ืื ืืืืื ืืืกืชืคืงืช ืืืืืงืช ืงืฆืืืช. ืื ืืืคื ืื ืืชืืื ืืืืืช ืืขื ืืื? ืืกืชืืจ ืฉืื ืื ื ืฆืจืืืื 2 ืคืื ืงืฆืืืช ืืื ืืืคื ืืืจืช ืืืืืืื ืฉื ืืืจืื ืืืชืจ ืืกืืืืื ืืืกืคืจืื, ืืืฉื ืืืจืืืืช. ืืจืืื ืื ืื ืืืื:
3.3.5 :013 > ('a'..'z').class
=> Range
ืืืื ืขื ืฉืืจืื ืื ืืืืื ืฉื ืืืจืืืืช ืื ืื ื ืืืืืื ืืืืืง ืฉืืืจืืืช ืืกืืืืช ื ืืฆืืช ืืื ืืืชืืื ืืกืืฃ:
3.3.5 :014 > ('a'..'z').include?('t')
=> true
3.3.5 :015 > ('a'..'z').cover?('t')
=> true
ืืช ืืืืื ืืื cover ื include ืื ืื ื ืืืืื ืืฉืื ืกืื ืืืคืฉ ืืืจืืืช ืฉื ืืฆืืช ืืืืื ืืื ืื ืชืืคืืข ืืจืฉืืื ืื ื ืืคืื ืืช ืืืืื ืืืขืจื:
3.3.5 :018 > ('a'..'d').to_a
=> ["a", "b", "c", "d"]
3.3.5 :019 > ('a'..'d').include?('bob')
=> false
3.3.5 :020 > ('a'..'d').cover?('bob')
=> true
ืขืืฉืื ืฆืืืงืื ืื ืฉืืืืื ืฉืื ืื ืืืื ืืืคื ืืฉืืจืื ืขื ืื ืงืืื ืืขืฉืจืื ืืช, ืืจื ืื ืืื ืฆืจืืืื ืืงืื ืืช ืืืชื ืืืก ืฉื ืืืจืืืืช. ืฆืืืงืื ืื ืื ืชืืืื ืฉืื ืืืืื ืฉืืืชื ืคืื ืงืฆืื include? ืืคืขืืื ืืืืืจื ืชืืฆืื ื O(1) ืืคืขืืื ืืืจืืช ืืืืืจื ืืช ืืชืืฆืื ื O(n). ืื ื ืืืื ืจืง ืืขื ืืช ืฉืืืืื ืื ืืืื ืื ืืจืืื ืืืืช ืืืืื ืืืืืช ืื ืขืงืืืช ืืื ืืื ืฉืืืืืชื ืืช cover? ืฉืืืืืืืช ืืืืืืื ืืชืืื ืืืืืจื ืชืฉืืื ื O(1).1 419
ืืื ืืคืฉืจ ืืคืจืืฅ ืืืืฉืื ืืืืืจื ืืืื ืืฉืื ืืฉืื ืื
ืืื ืื ืฉืืืืจืื ืื ืืืืช ืคืจืฆื ืจืง ืืืืืจื ืฉื ืื ื ืืื ืืืขืช ืืฉืืจ ืืืืคืื ืฉืื ืขืืื ืืฉืืื ืืื ืื ืขืืื, ืืื ืืคืฉืจ ืืคืจืืฅ ืืืืฉืื ืืืฉืืื ืืืืืจื, ืืื ืื ื ืฉืืืจ ืฉืื ืืคืจืฆื ืื ืืืฉืืื ืืืืืจื ืืื ืขืืฉืื ืืื ืืฆืืฆื ื ืืงืื ืื ืคืจืืฆื ืืชืจืืฉื. ืื ื ืืืืื ืื ืืืืข ืืืื ืขื ืื ืืืืช ืงืจื ืืื ืืืืจืื ืื ืืื ื ืืื ืืคืฉืจ ืืืืืื ืชืจืืืฉืื:
1. ืืฉืชืืืืช ืืื ืืช ืขื ืืกืคืจ ืืืคืื - ืืืจื ืืื ืงืื ืืคืจืืฅ ืืืืืจื ืื ืืื ืฉืืจืืช ืฉืืชืืกืก ืขื ืืืืืช ืืจื ืืกืคืจ ืืืคืื ืืื ืืืฉืื ืืืฉื ืืื ืืช ืืืกืคืจ ืืืืคืื ืฉื ืืงืจืื ืื ืืกืืกืื ืฉืืืืขืื ืืืื. ืื ืืืื ืืืืืช ืืจื ืคืจืืฆื ืืืืจื ืกืืืืืจืืช ืื ืืืืืืฉืื ืื ืื ืช ืฉืืืืจ ืืืจื, ืื ืืืื ืืืืืช ืืืืฃ ืฉื ืืงืฉืช ื ืืื ืืกืคืจ, ืืืืื ืกืื ืื ืืืืื ืขื ืื ืืื. ืืืืืื ืื ื ืืชืงืฉืจ ืืกืืงืื, ืืืืื ืืชืืจ ืื ื ืืืกืคืจ ืฉืื ืื ืื ืืช ืืืืคืื ืืื ื ืืืื ืกืื ืืืฉ ืืชืืื. ืกืืงืื ืฉืืืืื ืืืชื ืืงื ืืช ืกืื ืจืืง ืืชืื ืช ืฉืืจืืช ืืื ืื ื ื ืืชื ืืื ืืช ืืืกืคืจ ืฉืืชืื ืขื ืืกืื ืืื ืืขืืืจืื ืืช ืืกืคืจ ืืืืคืื ืฉืื ืืกืื ืืืืฉ ืืืจืืง. ืืื, ืงืืืืชื ืืช ืืกืคืจ ืืืืคืื ืฉื ืืงืจืื. ืืืขืจืืชื ืื ืชืจืืืฉ ืคืืืช ืกืืืจ ืื ืื ืฉืืฉืื ืฉืืืื ืขื ืืกืคืจ ืืืคืื ืื ืืขืฆืืจ ืืืฉืชืืืืช ืจืง ืขื ืืืืืจื.
2. ืืฉืชืืืืช ืขื ืกืฉื ืคืขืื - ืื ืืื ื ืืื ืืืืจื ืืืืืจ ืขื ืืืืฉื ืืื ืขื ืืืืคืื, ืืืืื ืื ืขื ืืืคืื ืืฉื, ืืคืฉืจ ืืื ืื ืืช ืืื ืืืืฉืืจืื ืืืืจืื ืืืืืืจืื ืืืืืจื ืืืจืื ืืืืืข ืืื ืืฉืืืืช ืืื ืฉื ืืงืฉืจ ืืืืืจื. ืื ืื ืืืื ืืกืชืืจ ืขื ืืืืืื ืฉืืืืจ ืืืืื ืฉื ืคืจืฅ ืืื ืืืืืจื ืืื ืืฃ ืคืขื ืื ืืคืฉืจ ืืืขืช.
3. ืืฉืชืืืืช ืขื ืืืืคืื ืขื ืจืืืื - ืื ืืชืงืื ื ืจืืืื ืขื ืืืืคืื ืฉื ืื ื ืืืืจืื ืื ืืืื ืืืืื ืืืืืข ืืืืืจื ืฉืื ืืื ืื ืืื ืฉืืจืืช ืืืจ ืืืื ืืื ืืืืืจ ืืืืืฉืืจ. ืืืฆื ืืื ืื ืจืื ืืืื ื ืจืืืื ืืืืคื ืืืชืจ ืืฉืืขืืชืืช ืขื ืืงืืืืช ืฉืืืืช, ืชืืื ืืช ืืคืจืื ืืฉืืื ืื ืง ืื ืฉืื ืื ืื ื ืฉืืข ืกืืืจ.
4. ืฉืืืืฉ ืืืงืื ืืืืจื ืฆื ืฉืืืฉื ืชืืื ืื ืืจืืฉืข - ืื ืื ื ืืฉืชืืฉ ืืชืืื ืช ืืืืจื ืฆื ืฉืืืฉื ืืืื ืื ืฉืืจื ืืื ืฉืฆืจืื ืขื ืคืจืื ืืืชืืืจืืช ืืืืจืื ืื ืืืื ืื ืฆื ืคืจืฆื ืืืืชื ืชืืื ืช ืฆื ืฉืืืฉื ืืื ืืืืืข ืืคืจืื ืืื ืืกื.
5. ืคืจืืฆื ืืฉืจืชื ืืืืจื ืขืฆืื - ืื ืืืืจืื ืื ืืฆืืืื ืืืฉืื ืืืฉื ืืฉืจืชืื ืฉื ืืืืจื ืขืฆืื ืื ืืฉืชืื ืงืื ืืืื ื ืืชืืื ืช ืืืืจื ืื ืืจืืจ ืฉืืคืฉืจ ืืื ืื ืฆื ืืช ืื ืืื ืืืืืข ืืืืคืื ืฉื ืื ื. ืื ืชืจืืืฉ ืื ืื ื ืฉืืข ืกืืืจ ืื ืื ืืืจ ืืฉ ืื ืืืฉื ืืฉืจืชืื ืฉื ืืืืจื ืืชื ืชืฉืชืืฉ ืืื ืืื ืืืขืืืช ืืจืกื ืืืื ืืช ืฉื ืืืคืืืงืฆืื ืฉืชืชืงืื ืจืืืื ืขื ืืืืฉืืจ ืฉื ืื ื ืืื ืชืขืฆืืจ ืืืืืจื.
6. ืคืืฉืื ื ืืื ืืกื ืืืจืชืืช - ืงืืืืช ืืื ืง ืืืืืจื ืฉืืชื ืืืื ืจืืฆื ืืคืชืื, ืืชื ืืืืฅ ืขืืื ืืืืืข ืืืกื ืฉื ืจืื ืืื ืืกื ืืื ืืกื ืฉื ืืืืจื ืืื ืืื ืืืืืฃ. ืืชื ืืชืืืจ ืืืกื ืื ื-ืืื, ืืชืืงืฃ ืงืืื ืืืฉื ืืืฉืืื ืฉืื. ืืืืจื ืืืืืกืืค ืืืคืฉืจืืช ืื ื ืืกืจืืง ืงืื QR ืืื ืืืชืืืจ, ืืืืืจ ืื ืื ื ื ืื ืกืื ืืืชืจ ืืืืจื, ืฉื ืืฉ ืงืื QR ืืืืงืฉืื ืืืชื ื ืืคืชืื ืืช ืืืืืจื ืืืืคืื ืืืกืจืืง ืืช ืืงืื ืืื ืืืชืืืจ. ืขืืฉืื ื ื ืื ืฉืืืงืื ืืืืืข ืืืชืจ ืืืืจื ืืืงืืจื ืืืขืชื ืืืชืจ ืืืืจื ืืื ืืืืืฃ. ืืชื ืื ืกืื ืืืชืืืจ ืืจื ืกืจืืงืช ืืงืื ืืื ืืืขืฉื ืืชื ืกืืจืงืื ืงืื ืฉืืชืืงืฃ ืืฆืจ ืืืืจื ืฉืชืกืจืงื ืืืชื ืืชื ืชืืืจื ืืช ืืชืืงืฃ ืืืืืจื ืฉืืื. ืื - ื ืื ืกืชื ืืืชืจ ืืื ืืืชืืืจ ืืืืืจื ืืื, ืื ืืืชืืื ืฉืื ืฉืืื ืงืื ืืืืืจื ืืืืคืื ืฉืืื ืืืชื ืืื ืืกืื ืืช ืืงืื ืืืชืจ ืืื ืืขืฆื ืืืืชื ืืืชืจ ืืชืืื ืืืงืื ืฉืืื ืืืืข ืืชืืงืฃ ืฉืืฉืชืืฉ ืื ืืื ืืืชืืืจ ืืฉืืื ืืืืืจื. ืื ืืกืืคืืจ ืฉื ืื ื ื ืืื ืืจืง ืืืืืจื ื ืคืจืฅ ืื ืืชืจืืืฉ ืืื ืืื ืืชืจืืืฉ ืืกืืืจ ืืืืชืจ.
ืืงืืืฆื ืฉื ืืืงืื ืืืขื ืื ืืื ืืฉืืื ืืืืจื ืคืจืืฅ ืืคืจืกื ืืืืืฉืื ืืืืขืช ืกืคืื. ืืืฉืืื ืืช ืืคืจืืฆืื ืืืื ืืื ืฉืืืืื ืคืขื ืืื ืฉืื ืืืืชืืื (ืืืื ืขืืืื). ืืชืงืคืืช ืื ืืกื ืืืจืชืืช ืืืืืคืื ืืืืืจื ืืคืื ืืฆืขืจื ื ืืืืื ื ืคืืฆืืช ืืืืคืืืช ืืช ืืืืื ืืืืืจื ืืืขืืืคืื ืืืชืจ. ืื ื ืืงืืื ืฉืืืืจื ืชืืฆื ืืจื ืืืจืฉ ืืช ืืกืงืืืจืื ืืืกื ื ืืช ืืืชืงืคืืช. ืขื ืื ืืื ืืืืจืื, ืฉืืื ืื ืื ืืืื ืก ืืืื ืงืื ืืฉืืืื ืืื ืืืชืืืจ ืืืืืจื ืืจื ืืกืื ืื ืืกื ืืคืืงืคืงืื.
1 419
ืื ืืื ืืงืจืื ืืขืืืง ืื ืื ื ืจืืืื ืฉืืืขืจืืช ื ืืืงื. ื JavaScript ืืืืืข ืขืืืื ืืืขืชืง ืืื ืืื ืืืกืืจ ืฉืืื ืืืขืจื ืืคืืืชืื. ืื ืฉืจืง ืืกืชืื ืขื ืืฉืืจื ืืื ื JavaScript ืืืื ืื ืืืื ืื ืืืจืชื:
this.events.push(["start", [token.name, { ...(token.attrs || {}) }]]);
} else {
ืืืชืจ ืืื ืื ืืช ืืืืืืงื ืฉื open_elements ื AI ืืืง ืืืืจื ืืืขืช ืืฉืชื ื ืื ื ืฉืืจ ืืชืืจ ืืฉืชื ื ืฉื ืืืืืงื ืืื ืฉืืืืฉ ืืืืชื ืฉื.
ืืื ืืืืืงืืช ืขืืจื...
ืื ื ืฉืืืข ืืชืื. ืกื ืฉื 9,200 ืืืืงืืช ืืืื ืืฉืื ืข ืืืชื ื ืฉืืกืคืจืื ืชืืืืช "100%" ืืืืื ืช ืืชื ืืืืช ืืกืคืจืื ืืืงืืจืืช. ืืื ืืืืืง ืื ืฉืืืคื ืืช ืืืืืื ืืืืช ืืืืฆืืืช ืืื ืฉื ืฉืื ืื ืฉืงืื ืืื ืื ืจืง ืืชืืฆืื ืฉืื. ืืืขืจืืช, ืืืื ื ืฉืื ืื ื ืืื ืื ืคื ืืื ืืฉืื ืืืื ืขืชืืืืื, ืืคืืื ืืืืืจื ืืฉืืืช ืืกืืืืื ืืืกืื ืื ืืชืืื ืืกืืื, ืื ืืื ืืฉืคืืขืื ืขื ืืืืืช ืืืขืจืืช. ืืฉืคืืขืื ืขื ืืืืืืช ืืชืืืง, ืืฉืคืจ ืืืืจืืื ืืืชื ืืืจ ืืืืืฉื.
ืืืขืื ืืื ืืื ืื ืฉ AI ืชืจืื ืืช ืืงืื. ืืื ืฉ AI ืชืจืื ืืช ืืงืื ืืื ืืื ืืืื ืืชืจืื ืื ืืช ืืืขืจืืช ืืืฉืืืจ ืขื ืืจืื ืืืงืืจืืช ืืืงืจืืืืช ืฉื ืืกืคืจืื ืืืงืืจืืช. ืืืขืื ืืื ืฉื AI ืืื "ืืขื", ืืื ืืช ืืืืืื ืืื ืืฉืืช ืฉื ืืงืจืื ืงืื ืืืืฉืื ืืื ืื ืงืื ืืกืคืจืื ืฉืื ื ืจืืฆื, ืืื ืืงืื ืืื ืืืื ืืช ืืืืืขืืช ืืื ืืืืฉืื ืฉืื ืืืื ืืขืชืื ืฉื ืืกืคืจืื.
ืืืขืื ืืื ืื ืฉ AI ืืชื ืืช ืืงืื ืืื ืฉืืฃ ืืื ืื ืงืจื ืืช ืืงืื ืืืชืืื ืืื ืืฉืืืืช ืฉืืืจืืื ืืช ืืืืฆืจ ืฉื ืกืคืจืืืช ืืคืืืชืื ืืืงืืจืืช. ืืื ืืกืืจ ืฉ AI ืืืชืื ืงืื ืื ืขืื ืืฉ ืืกืืฃ ืื ืืื ืฉืงืืจื ืืืชื.1 419
ืชืฉืขืช ืืืคืื ืืืืงืืช ืขืืจื
ืกืืืืื ืืืืืกืื ื ืชื ื AI ืืชืจืื ืกืคืจืืืช ืคืขื ืื HTML ืืคืืืชืื ื JavaScript. ืืงืื ืืืงืืจื ืืคืืืชืื ื ืืฆื ืืื:
https://github.com/EmilStenstrom/justhtml/
ืืืงืื ืฉื ืกืืืืื ื JavaScript ื ืืฆื ืืื:
https://github.com/simonw/justjshtml/
ืืกืคืจืื ืืฉ ืืืืืช ืืืืงืืช ืฉื 9,200 ืืืืงืืช ืื AI ื ืขืืจ ืืืืืงืืช ืืื ืืืื ืืชืืืช ืืงืื. ืื ืคืขื ื AI ืืชื ืงืื, ืืจืืฅ ืืช ืืืืืงืืช, ืืืื ืื ืื ืขืืจ ืืชืืงื. ืืชืืฆืื ืืื ืืืืื ืขื ืชืืืืืช ืืืขื ืืืื ืฉื ืืชืื ืืืื ืฉืกืืืืื ืงืืฉื ืขืฅ ืื ืืืื ืืฆืคื ืืกืจื.
ืกืืืืื ืืขืื ืฉืืืืช ืืฉืืืืช ืืืืื ืฉืื ืืืื ืืืฉืืขืืืืช ืฉื ืชืจืืื ืืื ืขื ืขืืื ืืชืืื ื ืืืืืืชื ืืขื ืืืฉืืขืืช ืืืืฉืืืืช ืฉื ืงืื ืืคืจื. ืื ื ืืืืืฅ ืืงืจืื ืืช ืืคืืกื ืฉืื ืื. ืื ื ืจืืฆื ืืื ืืืืกืืฃ ืืื ืชืืืืช ืืฉืื.
ืืงืื ืขืฆืื ืฉื ื AI ืฉื ืกืืืืื ืืืืช ืืืื ืืืื ืืงืื ืืืงืืจื ืจืื ืืืื, ืืื ืืื ืคืขื ืืื ืืืจื, ืืืฉื ื AI ืืืง ืืขืจืืช ืืืืง ืืืงืืฆืื, ืืืง ืืืืืืช ืืงืืฆืื ืืืจืื ืืืคืขืืื ืืคืืื ืฉืื ื ืืืืืงื. ืืืืื ืืืช ืืื ืืงืืืก StreamSink ืฉืืืจืกืช ืืคืืืชืื ื ืจืื ืื:
class _DummyNode:
namespace: str = "html"
class StreamSink:
"""A sink that buffers tokens for the stream API."""
tokens: list[StreamEvent]
open_elements: list[_DummyNode]
def __init__(self) -> None:
self.tokens = []
self.open_elements = [] # Required by tokenizer for rawtext checks
def process_token(self, token: Tag | CommentToken | DoctypeToken | Any) -> int:
# Tokenizer reuses token objects, so we must copy data
if isinstance(token, Tag):
# Copy tag data
self.tokens.append(
(
"start" if token.kind == Tag.START else "end",
(token.name, token.attrs.copy()) if token.kind == Tag.START else token.name,
)
)
# Maintain open_elements stack for tokenizer's rawtext checks
if token.kind == Tag.START:
# We need a dummy object with namespace for tokenizer checks
# Tokenizer checks: stack[-1].namespace
# We can just use a simple object
self.open_elements.append(_DummyNode())
else: # Tag.END
if self.open_elements:
self.open_elements.pop()
# If open_elements is empty, we ignore the end tag for rawtext tracking purposes
# (it's an unmatched end tag at the root level)
elif isinstance(token, CommentToken):
self.tokens.append(("comment", token.data))
elif isinstance(token, DoctypeToken):
dt = token.doctype
self.tokens.append(("doctype", (dt.name, dt.public_id, dt.system_id)))
return 0 # TokenSinkResult.Continue
def process_characters(self, data: str) -> None:
"""Handle character data from tokenizer."""
self.tokens.append(("text", data))
ืืืืจืกืช ื JavaScript ื ืจืื ืื:
class StreamSink {
constructor() {
this.events = [];
this.openElements = [{ namespace: "html" }];
}
processToken(token) {
if (token instanceof Tag) {
if (token.kind === Tag.START) {
this.events.push(["start", [token.name, { ...(token.attrs || {}) }]]);
} else {
this.events.push(["end", token.name]);
}
return TokenSinkResult.Continue;
}
if (token instanceof CommentToken) {
this.events.push(["comment", token.data]);
return TokenSinkResult.Continue;
}
if (token instanceof DoctypeToken) {
const dt = token.doctype;
this.events.push(["doctype", [dt?.name ?? null, dt?.publicId ?? null, dt?.systemId ?? null]]);
return TokenSinkResult.Continue;
}
return TokenSinkResult.Continue;
}
processCharacters(data) {
this.events.push(["text", data]);
}
}
Endi mavjud! Telegram Tadqiqoti 2025 โ yilning asosiy insaytlari 
