{"id":479001,"date":"2026-05-08T06:29:34","date_gmt":"2026-05-08T06:29:34","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=479001"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=479001","title":{"rendered":"\u041c\u043e\u0434\u0443\u043b\u044c collections \u0432 Python: \u0432\u0430\u0448 \u0447\u0438\u0442-\u043a\u043e\u0434 \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u0430\u0434\u0430\u0447"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440!<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u044c \u0440\u0430\u0437 \u043f\u044b\u0442\u0430\u043b\u0438\u0441\u044c \u0432\u043a\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b, \u0440\u0435\u0448\u0430\u043b\u0438 \u0437\u0430\u0434\u0430\u0447\u043a\u0438 \u043d\u0430 LeetCode \u0438\u043b\u0438 \u0433\u043e\u0442\u043e\u0432\u0438\u043b\u0438\u0441\u044c \u043a \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f\u043c, \u0442\u043e \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u043b\u043e\u0432\u0438\u043b\u0438 \u0432 \u043b\u0438\u0446\u043e \u043e\u0431\u0438\u0434\u043d\u0443\u044e \u043e\u0448\u0438\u0431\u043a\u0443 <strong>Time Limit Exceeded (TLE)<\/strong>. \u0412\u0440\u043e\u0434\u0435 \u0431\u044b \u043b\u043e\u0433\u0438\u043a\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u0430\u044f, \u043d\u0430 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u0442\u0435\u0441\u0442\u0430\u0445 \u0432\u0441\u0451 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043d\u043e \u043f\u0440\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0435 \u043a\u043e\u0434 \u043e\u0442\u0432\u0430\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<p>\u0421\u0430\u043c\u0430\u044f \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u0442\u0430\u043a\u043e\u0439 \u0431\u043e\u043b\u0438 \u0443 \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u0432 \u2014 \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u043e\u0435 <code>list.pop(0)<\/code>.<\/p>\n<p>\u041a\u043e\u0433\u0434\u0430 \u0432\u044b \u043f\u0438\u0448\u0435\u0442\u0435 \u044d\u0442\u0443 \u0441\u0442\u0440\u043e\u0447\u043a\u0443, \u0447\u0442\u043e\u0431\u044b \u0434\u043e\u0441\u0442\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0438\u0437 \u043e\u0447\u0435\u0440\u0435\u0434\u0438, Python \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u0431\u0438\u0440\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u041e\u0431\u044b\u0447\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c \u2014 \u044d\u0442\u043e \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043c\u0430\u0441\u0441\u0438\u0432. \u0423\u0434\u0430\u043b\u0438\u0432 \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u044f\u0437\u044b\u043a \u0432\u044b\u043d\u0443\u0436\u0434\u0435\u043d \u0441\u0434\u0432\u0438\u043d\u0443\u0442\u044c \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0435\u0441\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043d\u0430 \u043e\u0434\u043d\u0443 \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u0432\u043b\u0435\u0432\u043e. \u0415\u0441\u043b\u0438 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u043c\u0438\u043b\u043b\u0438\u043e\u043d \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u044d\u0442\u043e \u043c\u0438\u043b\u043b\u0438\u043e\u043d \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0440\u0430\u0434\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f. \u0418\u0442\u043e\u0433: \u0441\u043a\u0440\u044b\u0442\u0430\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c <img decoding=\"async\" class=\"formula inline\" source=\"O(n)\" alt=\"O(n)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/7b\/7ba\/7ba55e7c64a9405a0b39a1107e90ca94.svg\" width=\"32\" height=\"16\" data-width=\"4.844\" data-height=\"2.262\" data-vertical-align=\"-0.566\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/7b\/7ba\/7ba55e7c64a9405a0b39a1107e90ca94.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/7b\/7ba\/7ba55e7c64a9405a0b39a1107e90ca94.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u0442\u0430\u043c, \u0433\u0434\u0435 \u0432\u044b \u043e\u0436\u0438\u0434\u0430\u043b\u0438 \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u043e\u0442\u0432\u0435\u0442, \u0438 \u043f\u0440\u043e\u0432\u0430\u043b\u0435\u043d\u043d\u044b\u0439 \u0442\u0435\u0441\u0442.<\/p>\n<p><strong>\u041a\u0430\u043a \u044d\u0442\u043e \u043b\u0435\u0447\u0438\u0442\u044c?<\/strong> \u041f\u0435\u0440\u0435\u0441\u0442\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0430\u043c, \u0433\u0434\u0435 \u043e\u043d\u0438 \u043d\u0435 \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f, \u0438 \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u044c \u043f\u0440\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c <code>collections<\/code>.<\/p>\n<p>\u0412\u0430\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c <code>pip install<\/code> \u2014 \u044d\u0442\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 Python, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u044f\u0437\u044b\u043a\u0430 \u0443\u0436\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043d\u0430 C, \u0447\u0442\u043e\u0431\u044b \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043e\u0447\u0435\u0440\u0435\u0434\u044f\u043c\u0438, \u043f\u043e\u0434\u0441\u0447\u0435\u0442\u0430\u043c\u0438 \u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u0440\u044f\u043c\u0438, \u043d\u0435 \u043f\u0440\u043e\u0441\u0430\u0436\u0438\u0432\u0430\u044f\u0441\u044c \u043f\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043b\u0438\u0440\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u0442\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435: \u0435\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u0435\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434 \u043d\u0430 \u041f\u0438\u0442\u043e\u043d\u0435, \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u043a\u0430\u043a \u0432\u0441\u0435 \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u043e \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c, \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u043a\u0430\u0447\u0430\u0442\u044c \u0431\u0430\u0437\u0443 \u2014 \u0437\u0430\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u0439\u0442\u0435 \u043d\u0430 \u043c\u043e\u0439 \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u0438\u0439 \u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u043a\u0443\u0440\u0441 <a href=\"https:\/\/stepik.org\/course\/256643\/promo\" rel=\"noopener noreferrer nofollow\">\u00ab\u041e\u041e\u041f Python: \u0427\u0430\u0441\u0442\u044c 1\u00bb \u043d\u0430 Stepik<\/a>.<\/p>\n<p>\u041d\u0443 \u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u2014 \u043f\u043e\u0433\u043d\u0430\u043b\u0438 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0441 <code>collections<\/code>!<\/p>\n<h2>2. deque: \u0414\u0432\u0443\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u044f\u044f \u043e\u0447\u0435\u0440\u0435\u0434\u044c (\u0412\u0430\u0448 \u043b\u0443\u0447\u0448\u0438\u0439 \u0434\u0440\u0443\u0433 \u0434\u043b\u044f BFS)<\/h2>\n<p><strong>\u0422\u0435\u043e\u0440\u0438\u044f: \u0421\u0442\u0435\u043a, \u043e\u0447\u0435\u0440\u0435\u0434\u044c<\/strong> \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u043e\u0431\u044b\u0447\u043d\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0432 \u043a\u0430\u0441\u0441\u0443 \u0441\u0443\u043f\u0435\u0440\u043c\u0430\u0440\u043a\u0435\u0442\u0430: \u043a\u0442\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0440\u0438\u0448\u0435\u043b, \u0442\u043e\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u0438 \u0443\u0448\u0435\u043b. \u042d\u0442\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f <strong>FIFO<\/strong> (First In, First Out). \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0441\u0442\u043e\u043f\u043a\u0443 \u0442\u0430\u0440\u0435\u043b\u043e\u043a \u043d\u0430 \u043a\u0443\u0445\u043d\u0435: \u0432\u044b \u0431\u0435\u0440\u0435\u0442\u0435 \u0432\u0435\u0440\u0445\u043d\u044e\u044e \u0442\u0430\u0440\u0435\u043b\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043f\u043e\u043b\u043e\u0436\u0438\u043b\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439. \u042d\u0442\u043e \u0441\u0442\u0435\u043a \u2014 <strong>LIFO<\/strong> (Last In, First Out).<\/p>\n<p>\u041e\u0431\u044b\u0447\u043d\u044b\u0439 \u043f\u0438\u0442\u043e\u043d\u043e\u0432\u0441\u043a\u0438\u0439 <code>list<\/code> \u2014 \u044d\u0442\u043e \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0442\u0435\u043a. \u0412\u044b\u0437\u043e\u0432\u044b <code>.append()<\/code> \u0438 <code>.pop()<\/code> \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0441 \u043a\u043e\u043d\u0446\u043e\u043c \u0441\u043f\u0438\u0441\u043a\u0430 \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e. \u041d\u043e \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u044b \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0438\u0437 \u043d\u0435\u0433\u043e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0438 \u043f\u0438\u0448\u0435\u043c <code>.pop(0)<\/code>, \u0432\u0441\u0451 \u043b\u043e\u043c\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>\u0422\u0443\u0442 \u043d\u0430 \u0441\u0446\u0435\u043d\u0443 \u0432\u044b\u0445\u043e\u0434\u0438\u0442 <code><strong>deque<\/strong><\/code> (Double-Ended Queue, \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u00ab\u0434\u0435\u043a\u00bb). \u042d\u0442\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0435\u0440\u0435\u0442 \u043b\u0443\u0447\u0448\u0435\u0435 \u043e\u0442 \u043e\u0431\u043e\u0438\u0445. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0438 \u0437\u0430\u0431\u0438\u0440\u0430\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441 <em>\u043b\u044e\u0431\u043e\u0433\u043e<\/em> \u043a\u043e\u043d\u0446\u0430 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u0431\u0435\u0437\u0431\u043e\u043b\u0435\u0437\u043d\u0435\u043d\u043d\u043e.<\/p>\n<p><strong>\u041f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u0442\u0430\u043a \u0431\u044b\u0441\u0442\u0440\u043e?<\/strong> \u041f\u043e\u0447\u0435\u043c\u0443 <code>list.pop(0)<\/code> \u2014 \u044d\u0442\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c <img decoding=\"async\" class=\"formula inline\" source=\"O(n)\" alt=\"O(n)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/7b\/7ba\/7ba55e7c64a9405a0b39a1107e90ca94.svg\" width=\"32\" height=\"16\" data-width=\"4.844\" data-height=\"2.262\" data-vertical-align=\"-0.566\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/7b\/7ba\/7ba55e7c64a9405a0b39a1107e90ca94.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/7b\/7ba\/7ba55e7c64a9405a0b39a1107e90ca94.svg 781w\" loading=\"lazy\" decode=\"async\"\/>? \u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u0438\u0442\u043e\u043d\u043e\u0432\u0441\u043a\u0438\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u2014 \u044d\u0442\u043e \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043c\u0430\u0441\u0441\u0438\u0432. \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u044b\u0440\u0443 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438, \u0438 \u041f\u0438\u0442\u043e\u043d \u0432\u044b\u043d\u0443\u0436\u0434\u0435\u043d \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u0434\u0432\u0438\u043d\u0443\u0442\u044c \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0435\u0441\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043d\u0430 \u0448\u0430\u0433 \u0432\u043b\u0435\u0432\u043e.<\/p>\n<p>\u0410 \u0432\u043e\u0442 <code>deque<\/code> \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d (\u0443\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u043e) \u043a\u0430\u043a \u0434\u0432\u0443\u0441\u0432\u044f\u0437\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a. \u042d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043d\u0435 \u043b\u0435\u0436\u0430\u0442 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u0441\u043f\u043b\u043e\u0448\u043d\u044b\u043c \u043a\u0443\u0441\u043a\u043e\u043c, \u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u0441\u044b\u043b\u0430\u044e\u0442\u0441\u044f \u0434\u0440\u0443\u0433 \u043d\u0430 \u0434\u0440\u0443\u0433\u0430: \u00ab\u044f \u0437\u043d\u0430\u044e, \u043a\u0442\u043e \u0437\u0430 \u043c\u043d\u043e\u0439, \u0438 \u0437\u043d\u0430\u044e, \u043a\u0442\u043e \u043f\u0435\u0440\u0435\u0434\u043e \u043c\u043d\u043e\u0439\u00bb. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0441\u043b\u0435\u0432\u0430 (<code>.appendleft()<\/code>, <code>.popleft()<\/code>) \u041f\u0438\u0442\u043e\u043d\u0443 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0430\u0440\u0443 \u0441\u0441\u044b\u043b\u043e\u043a. \u041d\u0438\u043a\u0430\u043a\u0438\u0445 \u0441\u0434\u0432\u0438\u0433\u043e\u0432. \u0427\u0438\u0441\u0442\u0430\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c <img decoding=\"async\" class=\"formula inline\" source=\"O(1)\" alt=\"O(1)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5\/5e\/5e0\/5e079a28737d5dd019a3b8f6133ee55e.svg\" width=\"32\" height=\"16\" data-width=\"4.618\" data-height=\"2.262\" data-vertical-align=\"-0.566\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5\/5e\/5e0\/5e079a28737d5dd019a3b8f6133ee55e.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5\/5e\/5e0\/5e079a28737d5dd019a3b8f6133ee55e.svg 781w\" loading=\"lazy\" decode=\"async\"\/>.<\/p>\n<p><strong>\u0413\u0434\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u0445:<\/strong><\/p>\n<ol>\n<li>\n<p><strong>\u041f\u043e\u0438\u0441\u043a \u0432 \u0448\u0438\u0440\u0438\u043d\u0443 (BFS):<\/strong> \u0410\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u044b\u0439 \u043c\u0430\u0441\u0442\u0445\u044d\u0432 \u0434\u043b\u044f \u043e\u0431\u0445\u043e\u0434\u0430 \u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432 \u0438 \u0433\u0440\u0430\u0444\u043e\u0432 \u043f\u043e \u0443\u0440\u043e\u0432\u043d\u044f\u043c. \u0415\u0441\u043b\u0438 \u0432 \u0437\u0430\u0434\u0430\u0447\u0435 \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043a\u0440\u0430\u0442\u0447\u0430\u0439\u0448\u0438\u0439 \u043f\u0443\u0442\u044c \u0432 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0435 \u043d\u0435 \u0432\u0437\u0432\u0435\u0448\u0435\u043d\u043d\u043e\u0433\u043e \u0433\u0440\u0430\u0444\u0430 \u2014 \u0440\u0443\u043a\u0430 \u0441\u0430\u043c\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0442\u044f\u043d\u0443\u0442\u044c\u0441\u044f \u043a <code>from collections import deque<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>\u0421\u043a\u043e\u043b\u044c\u0437\u044f\u0449\u0435\u0435 \u043e\u043a\u043d\u043e (Sliding Window):<\/strong> \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0432 \u0437\u0430\u0434\u0430\u0447\u0430\u0445 \u0432\u0440\u043e\u0434\u0435 <em>Sliding Window Maximum<\/em> (\u0445\u0430\u0440\u0434 \u043d\u0430 LeetCode), \u0433\u0434\u0435 \u043c\u044b \u0445\u0440\u0430\u043d\u0438\u043c \u0432 \u0434\u0435\u043a\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u043e\u0432 \u043d\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0438 \u043b\u0435\u0433\u043a\u043e \u043e\u0442\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u043c \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441 \u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0446\u0430, \u0430 \u043d\u043e\u0432\u044b\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441 \u0434\u0440\u0443\u0433\u043e\u0433\u043e.<\/p>\n<\/li>\n<\/ol>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437 \u0436\u0438\u0437\u043d\u0438: \u041c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0439 vs \u0411\u044b\u0441\u0442\u0440\u044b\u0439 BFS<\/strong> \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u0439 \u043e\u0431\u0445\u043e\u0434 \u0433\u0440\u0430\u0444\u0430 \u0432 \u0448\u0438\u0440\u0438\u043d\u0443. \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u043c\u044b \u0438\u0449\u0435\u043c \u0432\u044b\u0445\u043e\u0434 \u0438\u0437 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0430.<\/p>\n<p>\u274c <strong>\u041a\u0430\u043a \u043f\u0438\u0448\u0435\u0442 \u043d\u043e\u0432\u0438\u0447\u043e\u043a (\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 TLE \u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0433\u0440\u0430\u0444\u0430\u0445):<\/strong><\/p>\n<pre><code class=\"python\">def bad_bfs(graph, start_node):    queue = [start_node] # \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a    visited = set([start_node])        while queue:        # \u0423\u0436\u0430\u0441\u043d\u043e! \u0421\u0434\u0432\u0438\u0433\u0430\u0435\u0442 \u0432\u0435\u0441\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u0432\u043b\u0435\u0432\u043e, O(n) \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438        node = queue.pop(0)                 for neighbor in graph[node]:            if neighbor not in visited:                visited.add(neighbor)                queue.append(neighbor)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:87px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u2705 <strong>\u041a\u0430\u043a \u043f\u0438\u0448\u0435\u0442 \u043f\u0440\u043e\u0444\u0438 (\u0411\u044b\u0441\u0442\u0440\u043e \u0438 \u0447\u0438\u0441\u0442\u043e):<\/strong><\/p>\n<pre><code class=\"python\">from collections import dequedef good_bfs(graph, start_node):    queue = deque([start_node]) # \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0434\u0435\u043a    visited = set([start_node])        while queue:        # \u041a\u0440\u0430\u0441\u043e\u0442\u0430! \u041c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0437\u0430 O(1)        node = queue.popleft()                 for neighbor in graph[node]:            if neighbor not in visited:                visited.add(neighbor)                queue.append(neighbor)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0420\u0430\u0437\u043d\u0438\u0446\u0430 \u0432\u0441\u0435\u0433\u043e \u0432 \u0434\u0432\u0443\u0445 \u0441\u0442\u0440\u043e\u0447\u043a\u0430\u0445 (<code>deque<\/code> \u0438 <code>.popleft()<\/code>), \u043d\u043e \u043d\u0430 \u0433\u0440\u0430\u0444\u0435 \u0441\u043e 100 000 \u0432\u0435\u0440\u0448\u0438\u043d \u043f\u0435\u0440\u0432\u044b\u0439 \u043a\u043e\u0434 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u0435\u043a\u0443\u043d\u0434\u044b, \u0430 \u0432\u0442\u043e\u0440\u043e\u0439 \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0437\u0430 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u044b.<\/p>\n<h2>3. Counter: \u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430 \u043d\u0430\u0434 \u0441\u043b\u043e\u0432\u0430\u0440\u044f\u043c\u0438<\/h2>\n<p><strong>\u0422\u0435\u043e\u0440\u0438\u044f: \u0417\u0430\u0447\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e?<\/strong> \u041f\u0440\u0438\u0437\u043d\u0430\u0439\u0442\u0435\u0441\u044c, \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0430\u0441 \u043f\u0438\u0441\u0430\u043b \u044d\u0442\u043e\u0442 \u043a\u043e\u0434. \u0412\u044b \u0438\u0434\u0435\u0442\u0435 \u043f\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0443 \u0438\u043b\u0438 \u0441\u0442\u0440\u043e\u043a\u0435 \u0438 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0435, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442.<\/p>\n<pre><code class=\"python\"># \u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0431\u043e\u043b\u044c \u043d\u043e\u0432\u0438\u0447\u043a\u0430counts = {}for char in s:    if char in counts:        counts[char] += 1    else:        counts[char] = 1<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0418\u043b\u0438, \u0435\u0441\u043b\u0438 \u0432\u044b \u0443\u0436\u0435 \u0432\u044b\u0443\u0447\u0438\u043b\u0438 \u043f\u0430\u0440\u0443 \u0442\u0440\u044e\u043a\u043e\u0432: <code>counts[char] = counts.get(char, 0) + 1<\/code>.<\/p>\n<p>\u0417\u0430\u0431\u0443\u0434\u044c\u0442\u0435. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0435\u0441\u0442\u044c <code>Counter<\/code>. \u041f\u043e \u0441\u0443\u0442\u0438, \u044d\u0442\u043e \u0443\u043c\u043d\u044b\u0439 \u043f\u043e\u0434\u043a\u043b\u0430\u0441\u0441 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u043f\u0438\u0442\u043e\u043d\u043e\u0432\u0441\u043a\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430\u0440\u044f (<code>dict<\/code>), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0437\u0434\u0430\u043d \u0440\u043e\u0432\u043d\u043e \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u2014 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u044b. \u0412\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043a\u0430\u0440\u043c\u043b\u0438\u0432\u0430\u0435\u0442\u0435 \u0435\u043c\u0443 \u043b\u044e\u0431\u043e\u0439 \u0438\u0442\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 (\u0441\u043f\u0438\u0441\u043e\u043a, \u043a\u043e\u0440\u0442\u0435\u0436, \u0441\u0442\u0440\u043e\u043a\u0443), \u0438 \u043e\u043d \u0441\u0430\u043c \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0447\u0430\u0441\u0442\u043e\u0442\u043d\u044b\u0439 \u0441\u043b\u043e\u0432\u0430\u0440\u044c, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u0431\u044b\u0441\u0442\u0440\u043e\u043c C.<\/p>\n<p><strong>\u0424\u0438\u0447\u0438, \u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435 \u0432\u0441\u0435 \u0437\u043d\u0430\u044e\u0442:<\/strong> \u041f\u043e\u043c\u0438\u043c\u043e \u0442\u043e\u0433\u043e, \u0447\u0442\u043e <code>Counter<\/code> \u0438\u0437\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043b\u0438\u0448\u043d\u0438\u0445 \u0446\u0438\u043a\u043b\u043e\u0432, \u0443 \u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u0441\u0443\u043f\u0435\u0440\u0441\u0438\u043b\u044b:<\/p>\n<ol>\n<li>\n<p><strong>\u041c\u0435\u0442\u043e\u0434 <\/strong><code><strong>.most_common(k)<\/strong><\/code><strong>:<\/strong> \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0437 <img decoding=\"async\" class=\"formula inline\" source=\"k\" alt=\"k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8\/8c\/8ce\/8ce4b16b22b58894aa86c421e8759df3.svg\" width=\"12\" height=\"12\" data-width=\"1.179\" data-height=\"1.595\" data-vertical-align=\"-0.025\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8\/8c\/8ce\/8ce4b16b22b58894aa86c421e8759df3.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8\/8c\/8ce\/8ce4b16b22b58894aa86c421e8759df3.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u0441\u0430\u043c\u044b\u0445 \u0447\u0430\u0441\u0442\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 <code>[(\u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e), ...]<\/code>. \u0415\u0441\u043b\u0438 \u043d\u0430 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u0440\u043e\u0441\u044f\u0442 \u0440\u0435\u0448\u0438\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443 \u201cTop K Frequent Elements\u201d \u2014 \u0432\u044b \u0443\u0436\u0435 \u0437\u043d\u0430\u0435\u0442\u0435, \u043a\u0430\u043a\u043e\u0439 \u043c\u0435\u0442\u043e\u0434 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043f\u043e\u0434\u0441\u0447\u0435\u0442\u0430 \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438.<\/p>\n<\/li>\n<li>\n<p><strong>\u0410\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0430:<\/strong> \u042d\u0442\u043e \u0441\u0430\u043c\u043e\u0435 \u0432\u043a\u0443\u0441\u043d\u043e\u0435. \u0421\u0447\u0435\u0442\u0447\u0438\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c (<code>+<\/code>), \u0432\u044b\u0447\u0438\u0442\u0430\u0442\u044c (<code>-<\/code>), \u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u0442\u044c (<code>&amp;<\/code> \u2014 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u043e\u0431\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f) \u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0442\u044c (<code>|<\/code> \u2014 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435). \u042d\u0442\u043e \u0437\u0432\u0443\u0447\u0438\u0442 \u043a\u0430\u043a \u043c\u0430\u0433\u0438\u044f, \u043d\u043e \u043d\u0435\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u0432\u044b\u0440\u0443\u0447\u0430\u0435\u0442 \u043f\u0440\u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<\/li>\n<\/ol>\n<p><strong>\u0413\u0434\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u0445:<\/strong><\/p>\n<ul>\n<li>\n<p><strong>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0441\u0442\u0440\u043e\u043a \u043d\u0430 \u0430\u043d\u0430\u0433\u0440\u0430\u043c\u043c\u044b:<\/strong> \u0418\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0441\u043e\u0441\u0442\u0430\u0432\u043e\u0432 \u0434\u0432\u0443\u0445 \u0441\u0442\u0440\u043e\u043a \u0438\u043b\u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p><strong>\u0427\u0430\u0441\u0442\u043e\u0442\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437:<\/strong> \u041b\u044e\u0431\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u0434\u0443\u0445\u0435 \u00ab\u043d\u0430\u0439\u0434\u0438\u0442\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435 <img decoding=\"async\" class=\"formula inline\" source=\"n\/2\" alt=\"n\/2\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a\/a2\/a2f\/a2f070a31330443ceb0dcf352fe50035.svg\" width=\"24\" height=\"16\" data-width=\"3.62\" data-height=\"2.262\" data-vertical-align=\"-0.566\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a\/a2\/a2f\/a2f070a31330443ceb0dcf352fe50035.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a\/a2\/a2f\/a2f070a31330443ceb0dcf352fe50035.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u0440\u0430\u0437\u00bb (Majority Element).<\/p>\n<\/li>\n<li>\n<p><strong>\u041f\u043e\u0438\u0441\u043a \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432:<\/strong> \u0417\u0430\u0434\u0430\u0447\u0430 \u00ab\u041d\u0430\u0439\u0442\u0438 \u043f\u0435\u0440\u0432\u044b\u0439 \u043d\u0435\u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0439\u0441\u044f \u0441\u0438\u043c\u0432\u043e\u043b \u0432 \u0441\u0442\u0440\u043e\u043a\u0435\u00bb \u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u0432 \u0434\u0432\u0430 \u0441\u0447\u0435\u0442\u0430. \u0421\u043e\u0437\u0434\u0430\u043b\u0438 <code>Counter<\/code>, \u043f\u0440\u043e\u0448\u043b\u0438\u0441\u044c \u043f\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435, \u0432\u0435\u0440\u043d\u0443\u043b\u0438 \u043f\u0435\u0440\u0432\u044b\u0439 \u0441\u0438\u043c\u0432\u043e\u043b \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c <code>1<\/code>.<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437 \u0436\u0438\u0437\u043d\u0438: Valid Anagram<\/strong> \u041f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u0441 LeetCode: \u0434\u0430\u043d\u044b \u0434\u0432\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 <code>s<\/code> \u0438 <code>t<\/code>. \u041d\u0443\u0436\u043d\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c <code>True<\/code>, \u0435\u0441\u043b\u0438 <code>t<\/code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u043d\u0430\u0433\u0440\u0430\u043c\u043c\u043e\u0439 <code>s<\/code> (\u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0442\u0435\u0445 \u0436\u0435 \u0431\u0443\u043a\u0432 \u0432 \u0442\u043e\u043c \u0436\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435).<\/p>\n<p>\u274c <strong>\u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u0432 \u043b\u043e\u0431:<\/strong> \u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u043e\u0431\u0435\u0438\u0445 \u0441\u0442\u0440\u043e\u043a \u0438 \u0438\u0445 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u2014 <code>return sorted(s) == sorted(t)<\/code>. \u041a\u043e\u0440\u043e\u0442\u043a\u043e, \u043d\u043e \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 <img decoding=\"async\" class=\"formula inline\" source=\"O(n \\log n)\" alt=\"O(n \\log n)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/6\/6d\/6de\/6de59736175e1a908a126e44d83b5085.svg\" width=\"72\" height=\"16\" data-width=\"9.847\" data-height=\"2.262\" data-vertical-align=\"-0.566\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/6\/6d\/6de\/6de59736175e1a908a126e44d83b5085.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/6\/6d\/6de\/6de59736175e1a908a126e44d83b5085.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u041d\u0430 \u0434\u043b\u0438\u043d\u043d\u044b\u0445 \u0441\u0442\u0440\u043e\u043a\u0430\u0445 \u044d\u0442\u043e \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e.<\/p>\n<p>\u2705 <strong>\u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u0441 Counter:<\/strong> \u041b\u0438\u043d\u0435\u0439\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f <img decoding=\"async\" class=\"formula inline\" source=\"O(n)\" alt=\"O(n)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/7b\/7ba\/7ba55e7c64a9405a0b39a1107e90ca94.svg\" width=\"32\" height=\"16\" data-width=\"4.844\" data-height=\"2.262\" data-vertical-align=\"-0.566\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/7b\/7ba\/7ba55e7c64a9405a0b39a1107e90ca94.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/7b\/7ba\/7ba55e7c64a9405a0b39a1107e90ca94.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u043f\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0438 \u043a\u0440\u0430\u0441\u043e\u0442\u0430 \u0432 \u043a\u043e\u0434\u0435.<\/p>\n<pre><code class=\"python\">from collections import Counterdef is_anagram(s: str, t: str) -&gt; bool:    # \u041f\u0440\u043e\u0441\u0442\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u043c \u0434\u0432\u0430 \u0447\u0430\u0441\u0442\u043e\u0442\u043d\u044b\u0445 \u0441\u043b\u043e\u0432\u0430\u0440\u044f    return Counter(s) == Counter(t)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0410 \u0432\u043e\u0442 \u0432\u0430\u043c \u0431\u043e\u043d\u0443\u0441\u043d\u044b\u0439 \u0442\u0440\u044e\u043a \u0441 \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u0435\u043c. \u0417\u0430\u0434\u0430\u0447\u0430 \u201cRansom Note\u201d: \u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0438\u0441\u044c\u043c\u043e <code>ransomNote<\/code> \u0438\u0437 \u0431\u0443\u043a\u0432, \u0432\u044b\u0440\u0435\u0437\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0436\u0443\u0440\u043d\u0430\u043b\u0430 <code>magazine<\/code>?<\/p>\n<pre><code class=\"python\">def can_construct(ransomNote: str, magazine: str) -&gt; bool:    # \u0412\u044b\u0447\u0438\u0442\u0430\u0435\u043c \u0438\u0437 \u0431\u0443\u043a\u0432 \u043f\u0438\u0441\u044c\u043c\u0430 \u0431\u0443\u043a\u0432\u044b \u0436\u0443\u0440\u043d\u0430\u043b\u0430.     # \u0415\u0441\u043b\u0438 \u0432 \u0438\u0442\u043e\u0433\u0435 \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u043f\u0443\u0441\u0442 \u2014 \u0437\u043d\u0430\u0447\u0438\u0442, \u0431\u0443\u043a\u0432 \u0436\u0443\u0440\u043d\u0430\u043b\u0430 \u0445\u0432\u0430\u0442\u0438\u043b\u043e \u043d\u0430 \u0432\u0441\u0451 \u043f\u0438\u0441\u044c\u043c\u043e!    return len(Counter(ransomNote) - Counter(magazine)) == 0<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h2>4. defaultdict: \u0417\u0430\u0431\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e KeyError \u043d\u0430\u0432\u0441\u0435\u0433\u0434\u0430<\/h2>\n<p><strong>\u0422\u0435\u043e\u0440\u0438\u044f: \u0411\u043e\u043b\u044c \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u0441\u043b\u043e\u0432\u0430\u0440\u0435\u0439<\/strong> \u041b\u044e\u0431\u043e\u0439 \u043f\u0438\u0442\u043e\u043d\u0438\u0441\u0442 \u0440\u0430\u043d\u043e \u0438\u043b\u0438 \u043f\u043e\u0437\u0434\u043d\u043e \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441 <code>KeyError<\/code>. \u042d\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u043f\u044b\u0442\u0430\u0435\u0442\u0435\u0441\u044c \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a \u043a\u043b\u044e\u0447\u0443 \u0441\u043b\u043e\u0432\u0430\u0440\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0442\u0430\u043c \u0435\u0449\u0435 \u043d\u0435\u0442.<\/p>\n<p>\u0412 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u0430\u0434\u0430\u0447\u0430\u0445 \u043c\u044b \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u0438: \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u0443\u0435\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b, \u0441\u0442\u0440\u043e\u0438\u043c \u0433\u0440\u0430\u0444\u044b, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b. \u0418 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0438\u0441\u0430\u0442\u044c \u0440\u0430\u0437\u0434\u0440\u0430\u0436\u0430\u044e\u0449\u0438\u0439 \u0437\u0430\u0449\u0438\u0442\u043d\u044b\u0439 \u043a\u043e\u0434:<\/p>\n<pre><code class=\"python\"># \u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0440\u0443\u0442\u0438\u043d\u0430if key not in my_dict:    my_dict[key] = []my_dict[key].append(value)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0414\u0430, \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434 <code>.setdefault()<\/code>, \u043d\u043e \u043a\u043e\u0434 \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u043c. <code>defaultdict<\/code> \u0440\u0435\u0448\u0430\u0435\u0442 \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0440\u0430\u0434\u0438\u043a\u0430\u043b\u044c\u043d\u043e. \u041f\u0440\u0438 \u0435\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0432\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044e-\u0444\u0430\u0431\u0440\u0438\u043a\u0443 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>list<\/code>, <code>int<\/code>, <code>set<\/code>). \u0415\u0441\u043b\u0438 \u0432\u044b \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u0442\u0435\u0441\u044c \u043a \u043d\u0435\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c\u0443 \u043a\u043b\u044e\u0447\u0443, <code>defaultdict<\/code> \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u044d\u0442\u0443 \u0444\u0430\u0431\u0440\u0438\u043a\u0443, \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438 \u043a\u043b\u0430\u0434\u0435\u0442 \u0435\u0433\u043e \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u043a\u043b\u044e\u0447\u0443. \u041d\u0438\u043a\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a, \u043d\u0438\u043a\u0430\u043a\u0438\u0445 <code>KeyError<\/code>.<\/p>\n<p><strong>\u0413\u0434\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u0445:<\/strong><\/p>\n<ul>\n<li>\n<p><strong>\u041f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u0433\u0440\u0430\u0444\u043e\u0432 (\u0441\u043f\u0438\u0441\u043a\u0438 \u0441\u043c\u0435\u0436\u043d\u043e\u0441\u0442\u0438):<\/strong> \u042d\u0442\u043e \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u044b\u0439 \u0442\u043e\u043f-1 \u044e\u0437\u043a\u0435\u0439\u0441. \u0413\u0440\u0430\u0444\u044b \u0432 \u0437\u0430\u0434\u0430\u0447\u0430\u0445 \u0447\u0430\u0441\u0442\u043e \u0437\u0430\u0434\u0430\u044e\u0442\u0441\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u043c \u0440\u0435\u0431\u0435\u0440, \u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442\u044c \u0438\u0445 \u0432 \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e.<\/p>\n<\/li>\n<li>\n<p><strong>\u0413\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445:<\/strong> \u041a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0441\u043a\u0438\u0434\u0430\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043f\u043e \u043a\u043e\u0440\u0437\u0438\u043d\u0430\u043c (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u043e\u0432\u0430 \u043f\u043e \u0438\u0445 \u0434\u043b\u0438\u043d\u0435 \u0438\u043b\u0438 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0430\u043d\u0430\u0433\u0440\u0430\u043c\u043c\u044b).<\/p>\n<\/li>\n<li>\n<p><strong>\u0421\u043b\u043e\u0436\u043d\u044b\u0435 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b:<\/strong> \u041a\u043e\u0433\u0434\u0430 \u0432\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u0441\u043b\u043e\u0432\u0430\u0440\u044c, \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043b\u0435\u0436\u0430\u0442 \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u043b\u043e\u0432\u0430\u0440\u0438 \u0438\u043b\u0438 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430.<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437 \u0436\u0438\u0437\u043d\u0438: \u0421\u0442\u0440\u043e\u0438\u043c \u0433\u0440\u0430\u0444<\/strong> \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443 \u043d\u0430 \u0433\u0440\u0430\u0444\u044b. \u0412\u0430\u043c \u043d\u0430 \u0432\u0445\u043e\u0434 \u0434\u0430\u044e\u0442 \u043c\u0430\u0441\u0441\u0438\u0432 \u0440\u0435\u0431\u0435\u0440 <code>edges = [[0, 1], [0, 2], [1, 2], [2, 3]]<\/code>. \u042d\u0442\u043e \u043d\u0435\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0433\u0440\u0430\u0444. \u041d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u043c\u0435\u0436\u043d\u043e\u0441\u0442\u0438 \u2014 \u0441\u043b\u043e\u0432\u0430\u0440\u044c, \u0433\u0434\u0435 \u043a\u043b\u044e\u0447 \u2014 \u044d\u0442\u043e \u0443\u0437\u0435\u043b, \u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u2014 \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u0441\u0435\u0445 \u0435\u0433\u043e \u0441\u043e\u0441\u0435\u0434\u0435\u0439.<\/p>\n<p>\u274c <strong>\u041a\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0430 \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u0441\u043b\u043e\u0432\u0430\u0440\u044f\u0445 (\u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u043e \u0438 \u0448\u0443\u043c\u043d\u043e):<\/strong><\/p>\n<pre><code class=\"python\">edges = [[0, 1], [0, 2], [1, 2], [2, 3]]graph = {}for u, v in edges:    # \u0417\u0430\u0449\u0438\u0449\u0430\u0435\u043c\u0441\u044f \u043e\u0442 KeyError \u0434\u043b\u044f \u0443\u0437\u043b\u0430 u    if u not in graph:        graph[u] = []    # \u0417\u0430\u0449\u0438\u0449\u0430\u0435\u043c\u0441\u044f \u043e\u0442 KeyError \u0434\u043b\u044f \u0443\u0437\u043b\u0430 v    if v not in graph:        graph[v] = []            graph[u].append(v)    graph[v].append(u)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u2705 <strong>\u042d\u043b\u0435\u0433\u0430\u043d\u0442\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0441 defaultdict:<\/strong><\/p>\n<pre><code class=\"python\">from collections import defaultdictedges = [[0, 1], [0, 2], [1, 2], [2, 3]]# \u0413\u043e\u0432\u043e\u0440\u0438\u043c: \"\u0415\u0441\u043b\u0438 \u043a\u043b\u044e\u0447\u0430 \u043d\u0435\u0442, \u0441\u043e\u0437\u0434\u0430\u0439 \u043f\u0443\u0441\u0442\u043e\u0439 \u0441\u043f\u0438\u0441\u043e\u043a\"graph = defaultdict(list)for u, v in edges:    # \u041d\u0438\u043a\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a! \u041f\u0440\u043e\u0441\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0441\u0435\u0434\u0435\u0439    graph[u].append(v)    graph[v].append(u)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041a\u043e\u0434 \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u043b\u0441\u044f \u0432 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430, \u0447\u0438\u0442\u0430\u0442\u044c \u0435\u0433\u043e \u0441\u0442\u0430\u043b\u043e \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u044f\u0442\u043d\u0435\u0435, \u0430 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u043e\u043f\u0435\u0447\u0430\u0442\u0430\u0442\u044c\u0441\u044f \u0438\u043b\u0438 \u0437\u0430\u0431\u044b\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043a\u043b\u044e\u0447\u0430 \u0441\u0432\u0435\u043b\u0430\u0441\u044c \u043a \u043d\u0443\u043b\u044e.<\/p>\n<p>\u0422\u043e\u0447\u043d\u043e \u0442\u0430\u043a \u0436\u0435 \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438. \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0447\u0442\u043e-\u0442\u043e \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043d\u043e \u0432\u044b \u043d\u0435 \u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <code>Counter<\/code> (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u043b\u043e\u0433\u0438\u043a\u0430 \u0441\u043b\u043e\u0436\u043d\u0435\u0435 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u0441\u0447\u0435\u0442\u0430), \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 <code>defaultdict(int)<\/code>. \u041f\u0440\u0438 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0438 \u043a \u043f\u0443\u0441\u0442\u043e\u043c\u0443 \u043a\u043b\u044e\u0447\u0443 \u043e\u043d \u0432\u0435\u0440\u043d\u0435\u0442 <code>0<\/code>, \u0438 \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043c\u0435\u043b\u043e \u043f\u0438\u0441\u0430\u0442\u044c <code>my_dict[key] += 1<\/code>. \u0410 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u043b\u0435\u0442\u0443 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u043e\u0439\u0434\u0435\u0442 <code>defaultdict(set)<\/code>.<\/p>\n<h2>5. \u0411\u043e\u043d\u0443\u0441: \u041a\u0440\u0430\u0442\u043a\u0438\u0439 \u043e\u0431\u0437\u043e\u0440 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432<\/h2>\n<p>\u0415\u0441\u043b\u0438 <code>deque<\/code>, <code>Counter<\/code> \u0438 <code>defaultdict<\/code> \u2014 \u044d\u0442\u043e \u0432\u0430\u0448\u0430 \u0442\u044f\u0436\u0435\u043b\u0430\u044f \u0430\u0440\u0442\u0438\u043b\u043b\u0435\u0440\u0438\u044f, \u0442\u043e \u044d\u0442\u0438 \u0434\u0432\u0430 \u043a\u043b\u0430\u0441\u0441\u0430 \u2014 \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u0442\u043e\u043d\u043a\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a\u043e\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043a\u0430\u0436\u0443\u0442 \u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e\u0435\u0440\u0443 \u0432\u0430\u0448\u0443 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u0443\u044e \u043a\u0443\u043b\u044c\u0442\u0443\u0440\u0443.<\/p>\n<p><code><strong>namedtuple<\/strong><\/code><strong>: \u0427\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u044c \u043f\u0440\u0435\u0432\u044b\u0448\u0435 \u0432\u0441\u0435\u0433\u043e<\/strong> \u0412 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447\u0430\u0445 \u043d\u0430 \u0433\u0440\u0430\u0444\u044b (\u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u0440\u0438 \u043f\u043e\u0438\u0441\u043a\u0435 \u043a\u0440\u0430\u0442\u0447\u0430\u0439\u0448\u0435\u0433\u043e \u043f\u0443\u0442\u0438 \u0441 \u043f\u0440\u0435\u043f\u044f\u0442\u0441\u0442\u0432\u0438\u044f\u043c\u0438) \u043c\u044b \u0447\u0430\u0441\u0442\u043e \u043a\u043b\u0430\u0434\u0435\u043c \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0434\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0430 \u0446\u0435\u043b\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435: \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b, \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0434\u043b\u0438\u043d\u0443 \u043f\u0443\u0442\u0438, \u0444\u043b\u0430\u0433 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u043a\u043b\u044e\u0447\u0430.<\/p>\n<p>\u041e\u0431\u044b\u0447\u043d\u043e \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u044e\u0442 \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u0440\u0442\u0435\u0436\u0438: <code>queue.append((0, 0, 1, False))<\/code>. \u0410 \u043f\u043e\u0442\u043e\u043c \u043f\u0440\u0438 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0430\u0434 \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438: <code>x, y = node[0], node[1]<\/code>, \u0438\u043b\u0438 \u0435\u0449\u0435 \u0445\u0443\u0436\u0435 \u2014 \u0432\u044b \u043f\u044b\u0442\u0430\u0435\u0442\u0435\u0441\u044c \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u0447\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 <code>node[3]<\/code> \u0447\u0435\u0440\u0435\u0437 \u0441\u043e\u0442\u043d\u044e \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430.<\/p>\n<p><code>namedtuple<\/code> \u0440\u0435\u0448\u0430\u0435\u0442 \u044d\u0442\u043e \u0438\u0437\u044f\u0449\u043d\u043e \u0438 \u0431\u0435\u0437 \u043d\u0430\u043a\u043b\u0430\u0434\u043d\u044b\u0445 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432 \u043f\u043e \u043f\u0430\u043c\u044f\u0442\u0438 (\u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c \u044d\u0442\u043e \u0432\u0441\u0435 \u0442\u043e\u0442 \u0436\u0435 \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u0439 \u043a\u043e\u0440\u0442\u0435\u0436).<\/p>\n<pre><code class=\"python\">from collections import namedtuple# \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0448\u0430\u0431\u043b\u043e\u043d \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044fState = namedtuple('State', ['x', 'y', 'distance', 'has_key'])# \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043ccurrent_node = State(x=5, y=10, distance=3, has_key=True)# \u041e\u0431\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043f\u043e-\u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u043a\u0438print(current_node.distance) # \u0412\u044b\u0432\u0435\u0434\u0435\u0442: 3<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u0430\u0448 \u043a\u043e\u0434 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0441\u0430\u043c\u043e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u043c. \u0427\u0438\u0442\u0430\u0442\u044c \u0435\u0433\u043e \u2014 \u043e\u0434\u043d\u043e \u0443\u0434\u043e\u0432\u043e\u043b\u044c\u0441\u0442\u0432\u0438\u0435.<\/p>\n<p><code><strong>OrderedDict<\/strong><\/code><strong>: \u0416\u0438\u0432 \u043b\u0438 \u043e\u043d \u043f\u043e\u0441\u043b\u0435 Python 3.7?<\/strong> \u041c\u043d\u043e\u0433\u0438\u0435 \u0437\u043d\u0430\u044e\u0442, \u0447\u0442\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0432\u0435\u0440\u0441\u0438\u0438 Python 3.7 \u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430\u0440\u0438 (<code>dict<\/code>) \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u043a\u043b\u044e\u0447\u0435\u0439. \u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e <code>OrderedDict<\/code> \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u043b \u0443\u0439\u0442\u0438 \u043d\u0430 \u043f\u0435\u043d\u0441\u0438\u044e.<\/p>\n<p>\u041d\u043e \u0443 \u043d\u0435\u0433\u043e \u043e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u043e\u0434\u043d\u0430 \u0444\u0438\u0447\u0430, \u0440\u0430\u0434\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0435\u0433\u043e \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442: \u043c\u0435\u0442\u043e\u0434 <code>.move_to_end(key)<\/code>.<\/p>\n<p>\u041d\u0430 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f\u0445 \u0432 FAANG \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043a\u0440\u0443\u043f\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u043e\u0431\u043e\u0436\u0430\u044e\u0442 \u0434\u0430\u0432\u0430\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443 <strong>LRU Cache<\/strong> (\u043a\u044d\u0448, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0442\u0435\u0441\u043d\u044f\u0435\u0442 \u043d\u0430\u0438\u043c\u0435\u043d\u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b). \u0420\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0451 \u0441 \u043d\u0443\u043b\u044f \u043d\u0430 \u0441\u0432\u044f\u0437\u043d\u044b\u0445 \u0441\u043f\u0438\u0441\u043a\u0430\u0445 \u2014 \u0442\u0430 \u0435\u0449\u0435 \u0431\u043e\u043b\u044c. \u0410 \u0441 <code>OrderedDict<\/code> \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0430\u0440\u0443 \u0441\u0442\u0440\u043e\u043a: \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0438 \u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0443 \u0432\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u043a\u0438\u0434\u044b\u0432\u0430\u0435\u0442\u0435 \u0435\u0433\u043e \u0432 \u043a\u043e\u043d\u0435\u0446 \u0441\u043b\u043e\u0432\u0430\u0440\u044f \u0432\u044b\u0437\u043e\u0432\u043e\u043c <code>cache.move_to_end(key)<\/code>. \u0422\u043e\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0441\u0442\u0440\u044f\u043b \u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0435 \u0441\u043b\u043e\u0432\u0430\u0440\u044f (\u043d\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 <code>0<\/code>), \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u043e\u043c \u043d\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435.<\/p>\n<pre><code class=\"python\">from collections import OrderedDictcache = OrderedDict()cache['a'] = 1cache['b'] = 2# \u0418\u043c\u0438\u0442\u0438\u0440\u0443\u0435\u043c \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0443 'a'cache.move_to_end('a') # \u0422\u0435\u043f\u0435\u0440\u044c 'b' \u0441\u0442\u043e\u0438\u0442 \u043f\u0435\u0440\u0432\u044b\u043c \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u043d\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435, \u0442\u0430\u043a \u043a\u0430\u043a 'a' \u043c\u044b \"\u043e\u0431\u043d\u043e\u0432\u0438\u043b\u0438\"oldest_key = next(iter(cache))print(f\"\u041a\u0430\u043d\u0434\u0438\u0434\u0430\u0442 \u043d\u0430 \u0432\u044b\u0442\u0435\u0441\u043d\u0435\u043d\u0438\u0435: {oldest_key}\") # \u0412\u044b\u0432\u0435\u0434\u0435\u0442: \u041a\u0430\u043d\u0434\u0438\u0434\u0430\u0442 \u043d\u0430 \u0432\u044b\u0442\u0435\u0441\u043d\u0435\u043d\u0438\u0435: b<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h4>6. \u0428\u043f\u0430\u0440\u0433\u0430\u043b\u043a\u0430 \u043f\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 (Big-O)<\/h4>\n<p>\u041d\u0430 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u0435\u043a\u0446\u0438\u044f\u0445 \u043c\u0430\u043b\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043a\u043e\u0434 \u2014 \u0432\u0430\u0441 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u043f\u0440\u043e\u0441\u044f\u0442 \u043e\u0446\u0435\u043d\u0438\u0442\u044c \u0435\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c. \u0418 \u0438\u043c\u0435\u043d\u043d\u043e \u0437\u0434\u0435\u0441\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u0431\u043e\u0440 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0442\u0434\u0435\u043b\u044f\u0435\u0442 \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u0430 \u0443\u0440\u043e\u0432\u043d\u044f Junior \u043e\u0442 \u043a\u0440\u0435\u043f\u043a\u043e\u0433\u043e Middle.<\/p>\n<p><em>(\u041a\u0441\u0442\u0430\u0442\u0438, \u0435\u0441\u043b\u0438 \u0432\u044b \u0432\u0441\u0451 \u0435\u0449\u0451 \u043f\u043b\u0430\u0432\u0430\u0435\u0442\u0435 \u0432 \u043e\u0446\u0435\u043d\u043a\u0430\u0445 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043f\u0443\u0442\u0430\u0435\u0442\u0435\u0441\u044c \u0432 \u043b\u043e\u0433\u0430\u0440\u0438\u0444\u043c\u0430\u0445 \u0438 \u043d\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0435, \u043e\u0442\u043a\u0443\u0434\u0430 \u0431\u0435\u0440\u0435\u0442\u0441\u044f \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0438\u0447\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u2014 \u043e\u0447\u0435\u043d\u044c \u0441\u043e\u0432\u0435\u0442\u0443\u044e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0430\u0443\u0437\u0443 \u0438 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043c\u043e\u044e \u0441\u0442\u0430\u0442\u044c\u044e <\/em><a href=\"https:\/\/habr.com\/ru\/articles\/1030772\/\" rel=\"noopener noreferrer nofollow\"><strong><em>\u041f\u043e\u043d\u044f\u0442\u044c Big O \u0440\u0430\u0437 \u0438 \u043d\u0430\u0432\u0441\u0435\u0433\u0434\u0430<\/em><\/strong><\/a><em>. \u041e\u043d\u0430 \u0440\u0430\u0441\u0441\u0442\u0430\u0432\u0438\u0442 \u0432\u0441\u0451 \u043f\u043e \u043f\u043e\u043b\u043e\u0447\u043a\u0430\u043c).<\/em><\/p>\n<p>\u0410 \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0443\u0436\u0435 \u0432 \u0442\u0435\u043c\u0435, \u044f \u0441\u043e\u0431\u0440\u0430\u043b \u043a\u0440\u0430\u0442\u043a\u0443\u044e \u0432\u044b\u0436\u0438\u043c\u043a\u0443. \u042d\u0442\u0443 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432 \u0433\u043e\u043b\u043e\u0432\u0435:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u041a\u0430\u043a\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0442\u043e\u0438\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434<\/p>\n<\/th>\n<th>\n<p align=\"left\">Big-O<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u0438\u0437 <code>collections<\/code><\/p>\n<\/th>\n<th>\n<p align=\"left\">Big-O<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u043b\u0443\u0447\u0448\u0435?<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>list.pop(0)<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><img decoding=\"async\" class=\"formula inline\" source=\"O(n)\" alt=\"O(n)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/7b\/7ba\/7ba55e7c64a9405a0b39a1107e90ca94.svg\" width=\"32\" height=\"16\" data-width=\"4.844\" data-height=\"2.262\" data-vertical-align=\"-0.566\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/7b\/7ba\/7ba55e7c64a9405a0b39a1107e90ca94.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/7b\/7ba\/7ba55e7c64a9405a0b39a1107e90ca94.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>deque.popleft()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><img decoding=\"async\" class=\"formula inline\" source=\"O(1)\" alt=\"O(1)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5\/5e\/5e0\/5e079a28737d5dd019a3b8f6133ee55e.svg\" width=\"32\" height=\"16\" data-width=\"4.618\" data-height=\"2.262\" data-vertical-align=\"-0.566\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5\/5e\/5e0\/5e079a28737d5dd019a3b8f6133ee55e.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5\/5e\/5e0\/5e079a28737d5dd019a3b8f6133ee55e.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0435\u0442 \u0441\u0434\u0432\u0438\u0433\u0430 \u0432\u0441\u0435\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438. \u041c\u0430\u0441\u0442\u0445\u044d\u0432 \u0434\u043b\u044f \u043e\u0447\u0435\u0440\u0435\u0434\u0435\u0439.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u0432 \u043d\u0430\u0447\u0430\u043b\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>list.insert(0, val)<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><img decoding=\"async\" class=\"formula inline\" source=\"O(n)\" alt=\"O(n)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/7b\/7ba\/7ba55e7c64a9405a0b39a1107e90ca94.svg\" width=\"32\" height=\"16\" data-width=\"4.844\" data-height=\"2.262\" data-vertical-align=\"-0.566\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/7b\/7ba\/7ba55e7c64a9405a0b39a1107e90ca94.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/7b\/7ba\/7ba55e7c64a9405a0b39a1107e90ca94.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>deque.appendleft(val)<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><img decoding=\"async\" class=\"formula inline\" source=\"O(1)\" alt=\"O(1)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5\/5e\/5e0\/5e079a28737d5dd019a3b8f6133ee55e.svg\" width=\"32\" height=\"16\" data-width=\"4.618\" data-height=\"2.262\" data-vertical-align=\"-0.566\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5\/5e\/5e0\/5e079a28737d5dd019a3b8f6133ee55e.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5\/5e\/5e0\/5e079a28737d5dd019a3b8f6133ee55e.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044e, \u0434\u0432\u0443\u0441\u0432\u044f\u0437\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u0435\u043b\u0430\u0435\u0442 \u044d\u0442\u043e \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u041f\u043e\u0434\u0441\u0447\u0435\u0442 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0426\u0438\u043a\u043b <code>for<\/code> + <code>dict.get()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><img decoding=\"async\" class=\"formula inline\" source=\"O(n)\" alt=\"O(n)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/7b\/7ba\/7ba55e7c64a9405a0b39a1107e90ca94.svg\" width=\"32\" height=\"16\" data-width=\"4.844\" data-height=\"2.262\" data-vertical-align=\"-0.566\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/7b\/7ba\/7ba55e7c64a9405a0b39a1107e90ca94.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/7b\/7ba\/7ba55e7c64a9405a0b39a1107e90ca94.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>Counter(arr)<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><img decoding=\"async\" class=\"formula inline\" source=\"O(n)\" alt=\"O(n)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/7b\/7ba\/7ba55e7c64a9405a0b39a1107e90ca94.svg\" width=\"32\" height=\"16\" data-width=\"4.844\" data-height=\"2.262\" data-vertical-align=\"-0.566\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/7b\/7ba\/7ba55e7c64a9405a0b39a1107e90ca94.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/7b\/7ba\/7ba55e7c64a9405a0b39a1107e90ca94.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0410\u0441\u0438\u043c\u043f\u0442\u043e\u0442\u0438\u043a\u0430 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u0430\u044f, \u043d\u043e <code>Counter<\/code> \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u043d\u0430 C. \u041e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0438\u0442\u043e\u043d\u043e\u0432\u0441\u043a\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u041f\u043e\u0438\u0441\u043a \u0442\u043e\u043f-K \u0447\u0430\u0441\u0442\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>sorted(dict.items())[:k]<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><img decoding=\"async\" class=\"formula inline\" source=\"O(n \\log n)\" alt=\"O(n \\log n)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/6\/6d\/6de\/6de59736175e1a908a126e44d83b5085.svg\" width=\"72\" height=\"16\" data-width=\"9.847\" data-height=\"2.262\" data-vertical-align=\"-0.566\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/6\/6d\/6de\/6de59736175e1a908a126e44d83b5085.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/6\/6d\/6de\/6de59736175e1a908a126e44d83b5085.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>Counter.most_common(k)<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><img decoding=\"async\" class=\"formula inline\" source=\"O(n \\log k)\" alt=\"O(n \\log k)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f\/f2\/f25\/f25a1a82d49d2483a32906784cfe06a9.svg\" width=\"72\" height=\"16\" data-width=\"9.668\" data-height=\"2.262\" data-vertical-align=\"-0.566\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f\/f2\/f25\/f25a1a82d49d2483a32906784cfe06a9.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f\/f2\/f25\/f25a1a82d49d2483a32906784cfe06a9.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>Counter<\/code> \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043a\u0443\u0447\u0443 (<code>heapq<\/code>), \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u043c\u0443 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c <em>\u0432\u0435\u0441\u044c<\/em> \u043c\u0430\u0441\u0441\u0438\u0432, \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e <img decoding=\"async\" class=\"formula inline\" source=\"k\" alt=\"k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8\/8c\/8ce\/8ce4b16b22b58894aa86c421e8759df3.svg\" width=\"12\" height=\"12\" data-width=\"1.179\" data-height=\"1.595\" data-vertical-align=\"-0.025\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8\/8c\/8ce\/8ce4b16b22b58894aa86c421e8759df3.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8\/8c\/8ce\/8ce4b16b22b58894aa86c421e8759df3.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u0413\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0430 \u043a\u043b\u044e\u0447\u0435\u0439 (\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 <code>if k not in dict<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><img decoding=\"async\" class=\"formula inline\" source=\"O(1)\" alt=\"O(1)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5\/5e\/5e0\/5e079a28737d5dd019a3b8f6133ee55e.svg\" width=\"32\" height=\"16\" data-width=\"4.618\" data-height=\"2.262\" data-vertical-align=\"-0.566\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5\/5e\/5e0\/5e079a28737d5dd019a3b8f6133ee55e.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5\/5e\/5e0\/5e079a28737d5dd019a3b8f6133ee55e.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>defaultdict(list)<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><img decoding=\"async\" class=\"formula inline\" source=\"O(1)\" alt=\"O(1)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5\/5e\/5e0\/5e079a28737d5dd019a3b8f6133ee55e.svg\" width=\"32\" height=\"16\" data-width=\"4.618\" data-height=\"2.262\" data-vertical-align=\"-0.566\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5\/5e\/5e0\/5e079a28737d5dd019a3b8f6133ee55e.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5\/5e\/5e0\/5e079a28737d5dd019a3b8f6133ee55e.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0442\u0430 \u0436\u0435, \u043d\u043e \u043a\u043e\u0434 \u0432 \u0440\u0430\u0437\u044b \u0447\u0438\u0449\u0435, \u0438 \u043d\u0435\u0442 \u043d\u0430\u043a\u043b\u0430\u0434\u043d\u044b\u0445 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432 \u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0432 Python.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435, <code>collections<\/code> \u2014 \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u00ab\u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u0430\u0445\u0430\u0440\u00bb \u0434\u043b\u044f \u043a\u0440\u0430\u0441\u043e\u0442\u044b \u043a\u043e\u0434\u0430. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 \u043e\u0447\u0435\u0440\u0435\u0434\u044f\u043c\u0438 \u0438 \u043f\u043e\u0438\u0441\u043a\u043e\u043c \u0441\u0430\u043c\u044b\u0445 \u0447\u0430\u0441\u0442\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u044d\u0442\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u0430\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043f\u0430\u0441\u0435\u0442 \u0432\u0430\u0448 \u043a\u043e\u0434 \u043e\u0442 \u043e\u0448\u0438\u0431\u043a\u0438 Time Limit Exceeded.<\/p>\n<h4>7. \u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435: \u0412\u0430\u0448 \u043d\u043e\u0432\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u0440\u0441\u0435\u043d\u0430\u043b<\/h4>\n<p>\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u0441\u043f\u0438\u0441\u043a\u0438 \u0438 \u0441\u043b\u043e\u0432\u0430\u0440\u0438 \u2014 \u044d\u0442\u043e \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c. \u041d\u043e \u043a\u043e\u0433\u0434\u0430 \u0434\u0435\u043b\u043e \u0434\u043e\u0445\u043e\u0434\u0438\u0442 \u0434\u043e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f\u0445 \u0438\u043b\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043b\u0438\u043c\u0438\u0442\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 \u043d\u0430 LeetCode, \u0438\u0445 \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430 \u0447\u0430\u0441\u0442\u043e \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442.<\/p>\n<p>\u041c\u043e\u0434\u0443\u043b\u044c <code>collections<\/code> \u2014 \u044d\u0442\u043e \u043b\u0435\u0433\u0430\u043b\u044c\u043d\u044b\u0439 \u0447\u0438\u0442-\u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u0436\u0435 \u043b\u0435\u0436\u0438\u0442 \u0432 \u043a\u043e\u0440\u043e\u0431\u043a\u0435 \u0441 Python. \u0412\u044b\u0431\u0438\u0440\u0430\u044f <code>deque<\/code> \u0434\u043b\u044f \u043e\u0447\u0435\u0440\u0435\u0434\u0435\u0439, <code>Counter<\/code> \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 \u0438 <code>defaultdict<\/code> \u0434\u043b\u044f \u0433\u0440\u0430\u0444\u043e\u0432, \u0432\u044b \u0443\u0431\u0438\u0432\u0430\u0435\u0442\u0435 \u0441\u0440\u0430\u0437\u0443 \u0442\u0440\u0435\u0445 \u0437\u0430\u0439\u0446\u0435\u0432:<\/p>\n<ol>\n<li>\n<p><strong>\u0421\u043f\u0430\u0441\u0430\u0435\u0442\u0435 \u043a\u043e\u0434 \u043e\u0442 TLE<\/strong>, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u0431\u044b\u0441\u0442\u0440\u043e\u043c C \u0438 \u0437\u0430\u0442\u043e\u0447\u0435\u043d\u043d\u044b\u0435 \u043f\u043e\u0434 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438.<\/p>\n<\/li>\n<li>\n<p><strong>\u041f\u0438\u0448\u0435\u0442\u0435 \u043c\u0435\u043d\u044c\u0448\u0435 \u043a\u043e\u0434\u0430<\/strong>, \u0438\u0437\u0431\u0430\u0432\u043b\u044f\u044f\u0441\u044c \u043e\u0442 \u0440\u0443\u0442\u0438\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a \u0438 \u043b\u0438\u0448\u043d\u0438\u0445 \u0446\u0438\u043a\u043b\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p><strong>\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0435 \u043a\u043b\u0430\u0441\u0441<\/strong>, \u0434\u0430\u0432\u0430\u044f \u043f\u043e\u043d\u044f\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e\u0435\u0440\u0443, \u0447\u0442\u043e \u0432\u044b \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u043c\u0435\u0435\u0442\u0435 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442\u044c \u043c\u044b\u0441\u043b\u0438 \u0432 \u043a\u043e\u0434, \u043d\u043e \u0438 \u0433\u043b\u0443\u0431\u043e\u043a\u043e \u0437\u043d\u0430\u0435\u0442\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u044f\u0437\u044b\u043a\u0430.<\/p>\n<\/li>\n<\/ol>\n<p>\u0410\u043d\u043e\u043d\u0441\u044b \u043d\u043e\u0432\u044b\u0445 \u0441\u0442\u0430\u0442\u0435\u0439, \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b, \u0430 \u0442\u0430\u043a \u0436\u0435 \u0435\u0441\u043b\u0438 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0443 \u0432\u0430\u0441 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043e\u0431\u0441\u0443\u0434\u0438\u0442\u044c \u0438\u0445 \u0438\u043b\u0438 \u0437\u0430\u0434\u0430\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441 \u043f\u043e \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u043e\u0436\u043d\u043e \u0432 <a href=\"https:\/\/t.me\/+NlTdqmVuBkIzMDBi\" rel=\"noopener noreferrer nofollow\"><strong>\u043c\u043e\u0451\u043c Telegram-\u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435<\/strong><\/a>. \u0421\u043c\u0435\u043b\u043e \u0437\u0430\u0445\u043e\u0434\u0438\u0442\u0435, \u0435\u0441\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0439\u0434\u0435\u0442 \u043d\u0435 \u0442\u0430\u043a, \u2014 \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u0435\u043c\u0441\u044f \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435.<\/p>\n<p><strong>\u041f\u043e\u0440\u0430 \u0437\u0430\u043a\u0440\u0435\u043f\u0438\u0442\u044c \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435<\/strong><\/p>\n<p>\u0427\u0438\u0442\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u043e, \u043d\u043e \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 \u0440\u0443\u043a\u0438. \u0415\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0440\u043e\u0447\u0443\u0432\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u044e \u043c\u043e\u0449\u044c \u044d\u0442\u0438\u0445 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u043f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441, \u0432\u043e\u0442 \u0432\u0430\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0440\u0430\u0437\u043c\u0438\u043d\u043a\u0430 \u043d\u0430 \u0432\u0435\u0447\u0435\u0440 (\u0437\u0430\u0434\u0430\u0447\u043a\u0438 \u043b\u0435\u0433\u043a\u043e \u0438\u0449\u0443\u0442\u0441\u044f \u043d\u0430 LeetCode):<\/p>\n<ul>\n<li>\n<p><strong>\u0414\u043b\u044f <\/strong><code><strong>Counter<\/strong><\/code><strong>:<\/strong> \u0417\u0430\u0434\u0430\u0447\u0430 <em>242. Valid Anagram<\/em>. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0440\u043e\u0432\u043d\u043e \u0432 \u043e\u0434\u043d\u0443 \u0441\u0442\u0440\u043e\u0447\u043a\u0443.<\/p>\n<\/li>\n<li>\n<p><strong>\u0414\u043b\u044f <\/strong><code><strong>defaultdict<\/strong><\/code><strong>:<\/strong> \u0417\u0430\u0434\u0430\u0447\u0430 <em>49. Group Anagrams<\/em>. \u0421\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u0443\u0439\u0442\u0435 \u043c\u0430\u0441\u0441\u0438\u0432 \u0441\u043b\u043e\u0432 \u043f\u043e \u0430\u043d\u0430\u0433\u0440\u0430\u043c\u043c\u0430\u043c, \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e <code>if<\/code> \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u043a\u043b\u044e\u0447\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>\u0414\u043b\u044f <\/strong><code><strong>deque<\/strong><\/code><strong>:<\/strong> \u0417\u0430\u0434\u0430\u0447\u0430 <em>200. Number of Islands<\/em>. \u0418\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u043b\u0438\u0433\u043e\u043d, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u043f\u0435\u0440\u0432\u044b\u0439 \u0447\u0438\u0441\u0442\u044b\u0439 BFS \u0431\u0435\u0437 \u0441\u043f\u0438\u0441\u043a\u0430-\u043e\u0447\u0435\u0440\u0435\u0434\u0438.<\/p>\n<\/li>\n<\/ul>\n<p>\u0423\u0434\u0430\u0447\u0438 \u043d\u0430 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f\u0445 \u0438 \u0437\u0435\u043b\u0435\u043d\u044b\u0445 \u0432\u0430\u043c \u0442\u0435\u0441\u0442\u043e\u0432!<\/p>\n<\/div>\n<p>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/1032834\/\">https:\/\/habr.com\/ru\/articles\/1032834\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440!\u0415\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u044c \u0440\u0430\u0437 \u043f\u044b\u0442\u0430\u043b\u0438\u0441\u044c \u0432\u043a\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b, \u0440\u0435\u0448\u0430\u043b\u0438 \u0437\u0430\u0434\u0430\u0447\u043a\u0438 \u043d\u0430 LeetCode \u0438\u043b\u0438 \u0433\u043e\u0442\u043e\u0432\u0438\u043b\u0438\u0441\u044c \u043a \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f\u043c, \u0442\u043e \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u043b\u043e\u0432\u0438\u043b\u0438 \u0432 \u043b\u0438\u0446\u043e \u043e\u0431\u0438\u0434\u043d\u0443\u044e \u043e\u0448\u0438\u0431\u043a\u0443 Time Limit Exceeded (TLE). \u0412\u0440\u043e\u0434\u0435 \u0431\u044b \u043b\u043e\u0433\u0438\u043a\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u0430\u044f, \u043d\u0430 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u0442\u0435\u0441\u0442\u0430\u0445 \u0432\u0441\u0451 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043d\u043e \u043f\u0440\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0435 \u043a\u043e\u0434 \u043e\u0442\u0432\u0430\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438.\u0421\u0430\u043c\u0430\u044f \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u0442\u0430\u043a\u043e\u0439 \u0431\u043e\u043b\u0438 \u0443 \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u0432 \u2014 \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u043e\u0435 list.pop(0).\u041a\u043e\u0433\u0434\u0430 \u0432\u044b \u043f\u0438\u0448\u0435\u0442\u0435 \u044d\u0442\u0443 \u0441\u0442\u0440\u043e\u0447\u043a\u0443, \u0447\u0442\u043e\u0431\u044b \u0434\u043e\u0441\u0442\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0438\u0437 \u043e\u0447\u0435\u0440\u0435\u0434\u0438, Python \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u0431\u0438\u0440\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u041e\u0431\u044b\u0447\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c \u2014 \u044d\u0442\u043e \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043c\u0430\u0441\u0441\u0438\u0432. \u0423\u0434\u0430\u043b\u0438\u0432 \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u044f\u0437\u044b\u043a \u0432\u044b\u043d\u0443\u0436\u0434\u0435\u043d \u0441\u0434\u0432\u0438\u043d\u0443\u0442\u044c \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0435\u0441\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043d\u0430 \u043e\u0434\u043d\u0443 \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u0432\u043b\u0435\u0432\u043e. \u0415\u0441\u043b\u0438 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u043c\u0438\u043b\u043b\u0438\u043e\u043d \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u044d\u0442\u043e \u043c\u0438\u043b\u043b\u0438\u043e\u043d \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0440\u0430\u0434\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f. \u0418\u0442\u043e\u0433: \u0441\u043a\u0440\u044b\u0442\u0430\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c  \u0442\u0430\u043c, \u0433\u0434\u0435 \u0432\u044b \u043e\u0436\u0438\u0434\u0430\u043b\u0438 \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u043e\u0442\u0432\u0435\u0442, \u0438 \u043f\u0440\u043e\u0432\u0430\u043b\u0435\u043d\u043d\u044b\u0439 \u0442\u0435\u0441\u0442.\u041a\u0430\u043a \u044d\u0442\u043e \u043b\u0435\u0447\u0438\u0442\u044c? \u041f\u0435\u0440\u0435\u0441\u0442\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0430\u043c, \u0433\u0434\u0435 \u043e\u043d\u0438 \u043d\u0435 \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f, \u0438 \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u044c \u043f\u0440\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c collections.\u0412\u0430\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c pip install \u2014 \u044d\u0442\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 Python, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u044f\u0437\u044b\u043a\u0430 \u0443\u0436\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043d\u0430 C, \u0447\u0442\u043e\u0431\u044b \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043e\u0447\u0435\u0440\u0435\u0434\u044f\u043c\u0438, \u043f\u043e\u0434\u0441\u0447\u0435\u0442\u0430\u043c\u0438 \u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u0440\u044f\u043c\u0438, \u043d\u0435 \u043f\u0440\u043e\u0441\u0430\u0436\u0438\u0432\u0430\u044f\u0441\u044c \u043f\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438.\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043b\u0438\u0440\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u0442\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435: \u0435\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u0435\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434 \u043d\u0430 \u041f\u0438\u0442\u043e\u043d\u0435, \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u043a\u0430\u043a \u0432\u0441\u0435 \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u043e \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c, \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u043a\u0430\u0447\u0430\u0442\u044c \u0431\u0430\u0437\u0443 \u2014 \u0437\u0430\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u0439\u0442\u0435 \u043d\u0430 \u043c\u043e\u0439 \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u0438\u0439 \u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u043a\u0443\u0440\u0441 \u00ab\u041e\u041e\u041f Python: \u0427\u0430\u0441\u0442\u044c 1\u00bb \u043d\u0430 Stepik.\u041d\u0443 \u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u2014 \u043f\u043e\u0433\u043d\u0430\u043b\u0438 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0441 collections!2. deque: \u0414\u0432\u0443\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u044f\u044f \u043e\u0447\u0435\u0440\u0435\u0434\u044c (\u0412\u0430\u0448 \u043b\u0443\u0447\u0448\u0438\u0439 \u0434\u0440\u0443\u0433 \u0434\u043b\u044f BFS)\u0422\u0435\u043e\u0440\u0438\u044f: \u0421\u0442\u0435\u043a, \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u043e\u0431\u044b\u0447\u043d\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0432 \u043a\u0430\u0441\u0441\u0443 \u0441\u0443\u043f\u0435\u0440\u043c\u0430\u0440\u043a\u0435\u0442\u0430: \u043a\u0442\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0440\u0438\u0448\u0435\u043b, \u0442\u043e\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u0438 \u0443\u0448\u0435\u043b. \u042d\u0442\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f FIFO (First In, First Out). \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0441\u0442\u043e\u043f\u043a\u0443 \u0442\u0430\u0440\u0435\u043b\u043e\u043a \u043d\u0430 \u043a\u0443\u0445\u043d\u0435: \u0432\u044b \u0431\u0435\u0440\u0435\u0442\u0435 \u0432\u0435\u0440\u0445\u043d\u044e\u044e \u0442\u0430\u0440\u0435\u043b\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043f\u043e\u043b\u043e\u0436\u0438\u043b\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439. \u042d\u0442\u043e \u0441\u0442\u0435\u043a \u2014 LIFO (Last In, First Out).\u041e\u0431\u044b\u0447\u043d\u044b\u0439 \u043f\u0438\u0442\u043e\u043d\u043e\u0432\u0441\u043a\u0438\u0439 list \u2014 \u044d\u0442\u043e \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0442\u0435\u043a. \u0412\u044b\u0437\u043e\u0432\u044b .append() \u0438 .pop() \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0441 \u043a\u043e\u043d\u0446\u043e\u043c \u0441\u043f\u0438\u0441\u043a\u0430 \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e. \u041d\u043e \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u044b \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0438\u0437 \u043d\u0435\u0433\u043e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0438 \u043f\u0438\u0448\u0435\u043c .pop(0), \u0432\u0441\u0451 \u043b\u043e\u043c\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438.\u0422\u0443\u0442 \u043d\u0430 \u0441\u0446\u0435\u043d\u0443 \u0432\u044b\u0445\u043e\u0434\u0438\u0442 deque (Double-Ended Queue, \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u00ab\u0434\u0435\u043a\u00bb). \u042d\u0442\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0435\u0440\u0435\u0442 \u043b\u0443\u0447\u0448\u0435\u0435 \u043e\u0442 \u043e\u0431\u043e\u0438\u0445. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0438 \u0437\u0430\u0431\u0438\u0440\u0430\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441 \u043b\u044e\u0431\u043e\u0433\u043e \u043a\u043e\u043d\u0446\u0430 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u0431\u0435\u0437\u0431\u043e\u043b\u0435\u0437\u043d\u0435\u043d\u043d\u043e.\u041f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u0442\u0430\u043a \u0431\u044b\u0441\u0442\u0440\u043e? \u041f\u043e\u0447\u0435\u043c\u0443 list.pop(0) \u2014 \u044d\u0442\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c ? \u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u0438\u0442\u043e\u043d\u043e\u0432\u0441\u043a\u0438\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u2014 \u044d\u0442\u043e \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043c\u0430\u0441\u0441\u0438\u0432. \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u044b\u0440\u0443 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438, \u0438 \u041f\u0438\u0442\u043e\u043d \u0432\u044b\u043d\u0443\u0436\u0434\u0435\u043d \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u0434\u0432\u0438\u043d\u0443\u0442\u044c \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0435\u0441\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043d\u0430 \u0448\u0430\u0433 \u0432\u043b\u0435\u0432\u043e.\u0410 \u0432\u043e\u0442 deque \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d (\u0443\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u043e) \u043a\u0430\u043a \u0434\u0432\u0443\u0441\u0432\u044f\u0437\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a. \u042d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043d\u0435 \u043b\u0435\u0436\u0430\u0442 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u0441\u043f\u043b\u043e\u0448\u043d\u044b\u043c \u043a\u0443\u0441\u043a\u043e\u043c, \u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u0441\u044b\u043b\u0430\u044e\u0442\u0441\u044f \u0434\u0440\u0443\u0433 \u043d\u0430 \u0434\u0440\u0443\u0433\u0430: \u00ab\u044f \u0437\u043d\u0430\u044e, \u043a\u0442\u043e \u0437\u0430 \u043c\u043d\u043e\u0439, \u0438 \u0437\u043d\u0430\u044e, \u043a\u0442\u043e \u043f\u0435\u0440\u0435\u0434\u043e \u043c\u043d\u043e\u0439\u00bb. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0441\u043b\u0435\u0432\u0430 (.appendleft(), .popleft()) \u041f\u0438\u0442\u043e\u043d\u0443 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0430\u0440\u0443 \u0441\u0441\u044b\u043b\u043e\u043a. \u041d\u0438\u043a\u0430\u043a\u0438\u0445 \u0441\u0434\u0432\u0438\u0433\u043e\u0432. \u0427\u0438\u0441\u0442\u0430\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c .\u0413\u0434\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u0445:\u041f\u043e\u0438\u0441\u043a \u0432 \u0448\u0438\u0440\u0438\u043d\u0443 (BFS): \u0410\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u044b\u0439 \u043c\u0430\u0441\u0442\u0445\u044d\u0432 \u0434\u043b\u044f \u043e\u0431\u0445\u043e\u0434\u0430 \u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432 \u0438 \u0433\u0440\u0430\u0444\u043e\u0432 \u043f\u043e \u0443\u0440\u043e\u0432\u043d\u044f\u043c. \u0415\u0441\u043b\u0438 \u0432 \u0437\u0430\u0434\u0430\u0447\u0435 \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043a\u0440\u0430\u0442\u0447\u0430\u0439\u0448\u0438\u0439 \u043f\u0443\u0442\u044c \u0432 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0435 \u043d\u0435 \u0432\u0437\u0432\u0435\u0448\u0435\u043d\u043d\u043e\u0433\u043e \u0433\u0440\u0430\u0444\u0430 \u2014 \u0440\u0443\u043a\u0430 \u0441\u0430\u043c\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0442\u044f\u043d\u0443\u0442\u044c\u0441\u044f \u043a from collections import deque.\u0421\u043a\u043e\u043b\u044c\u0437\u044f\u0449\u0435\u0435 \u043e\u043a\u043d\u043e (Sliding Window): \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0432 \u0437\u0430\u0434\u0430\u0447\u0430\u0445 \u0432\u0440\u043e\u0434\u0435 Sliding Window Maximum (\u0445\u0430\u0440\u0434 \u043d\u0430 LeetCode), \u0433\u0434\u0435 \u043c\u044b \u0445\u0440\u0430\u043d\u0438\u043c \u0432 \u0434\u0435\u043a\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u043e\u0432 \u043d\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0438 \u043b\u0435\u0433\u043a\u043e \u043e\u0442\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u043c \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441 \u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0446\u0430, \u0430 \u043d\u043e\u0432\u044b\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441 \u0434\u0440\u0443\u0433\u043e\u0433\u043e.\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437 \u0436\u0438\u0437\u043d\u0438: \u041c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0439 vs \u0411\u044b\u0441\u0442\u0440\u044b\u0439 BFS \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u0439 \u043e\u0431\u0445\u043e\u0434 \u0433\u0440\u0430\u0444\u0430 \u0432 \u0448\u0438\u0440\u0438\u043d\u0443. \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u043c\u044b \u0438\u0449\u0435\u043c \u0432\u044b\u0445\u043e\u0434 \u0438\u0437 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0430.\u274c \u041a\u0430\u043a \u043f\u0438\u0448\u0435\u0442 \u043d\u043e\u0432\u0438\u0447\u043e\u043a (\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 TLE \u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0433\u0440\u0430\u0444\u0430\u0445):def bad_bfs(graph, start_node):    queue = [start_node] # \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a    visited = set([start_node])        while queue:        # \u0423\u0436\u0430\u0441\u043d\u043e! \u0421\u0434\u0432\u0438\u0433\u0430\u0435\u0442 \u0432\u0435\u0441\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u0432\u043b\u0435\u0432\u043e, O(n) \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438        node = queue.pop(0)                 for neighbor in graph[node]:            if neighbor not in visited:                visited.add(neighbor)                queue.append(neighbor)\u2705 \u041a\u0430\u043a \u043f\u0438\u0448\u0435\u0442 \u043f\u0440\u043e\u0444\u0438 (\u0411\u044b\u0441\u0442\u0440\u043e \u0438 \u0447\u0438\u0441\u0442\u043e):from collections import dequedef good_bfs(graph, start_node):    queue = deque([start_node]) # \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0434\u0435\u043a    visited = set([start_node])        while queue:        # \u041a\u0440\u0430\u0441\u043e\u0442\u0430! \u041c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0437\u0430 O(1)        node = queue.popleft()                 for neighbor in graph[node]:            if neighbor not in visited:                visited.add(neighbor)                queue.append(neighbor)\u0420\u0430\u0437\u043d\u0438\u0446\u0430 \u0432\u0441\u0435\u0433\u043e \u0432 \u0434\u0432\u0443\u0445 \u0441\u0442\u0440\u043e\u0447\u043a\u0430\u0445 (deque \u0438 .popleft()), \u043d\u043e \u043d\u0430 \u0433\u0440\u0430\u0444\u0435 \u0441\u043e 100 000 \u0432\u0435\u0440\u0448\u0438\u043d \u043f\u0435\u0440\u0432\u044b\u0439 \u043a\u043e\u0434 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u0435\u043a\u0443\u043d\u0434\u044b, \u0430 \u0432\u0442\u043e\u0440\u043e\u0439 \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0437\u0430 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u044b.3. Counter: \u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430 \u043d\u0430\u0434 \u0441\u043b\u043e\u0432\u0430\u0440\u044f\u043c\u0438\u0422\u0435\u043e\u0440\u0438\u044f: \u0417\u0430\u0447\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e? \u041f\u0440\u0438\u0437\u043d\u0430\u0439\u0442\u0435\u0441\u044c, \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0430\u0441 \u043f\u0438\u0441\u0430\u043b \u044d\u0442\u043e\u0442 \u043a\u043e\u0434. \u0412\u044b \u0438\u0434\u0435\u0442\u0435 \u043f\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0443 \u0438\u043b\u0438 \u0441\u0442\u0440\u043e\u043a\u0435 \u0438 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0435, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442.# \u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0431\u043e\u043b\u044c \u043d\u043e\u0432\u0438\u0447\u043a\u0430counts = {}for char in s:    if char in counts:        counts[char] += 1    else:        counts[char] = 1\u0418\u043b\u0438, \u0435\u0441\u043b\u0438 \u0432\u044b \u0443\u0436\u0435 \u0432\u044b\u0443\u0447\u0438\u043b\u0438 \u043f\u0430\u0440\u0443 \u0442\u0440\u044e\u043a\u043e\u0432: counts[char] = counts.get(char, 0) + 1.\u0417\u0430\u0431\u0443\u0434\u044c\u0442\u0435. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0435\u0441\u0442\u044c Counter. \u041f\u043e \u0441\u0443\u0442\u0438, \u044d\u0442\u043e \u0443\u043c\u043d\u044b\u0439 \u043f\u043e\u0434\u043a\u043b\u0430\u0441\u0441 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u043f\u0438\u0442\u043e\u043d\u043e\u0432\u0441\u043a\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430\u0440\u044f (dict), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0437\u0434\u0430\u043d \u0440\u043e\u0432\u043d\u043e \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u2014 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u044b. \u0412\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043a\u0430\u0440\u043c\u043b\u0438\u0432\u0430\u0435\u0442\u0435 \u0435\u043c\u0443 \u043b\u044e\u0431\u043e\u0439 \u0438\u0442\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 (\u0441\u043f\u0438\u0441\u043e\u043a, \u043a\u043e\u0440\u0442\u0435\u0436, \u0441\u0442\u0440\u043e\u043a\u0443), \u0438 \u043e\u043d \u0441\u0430\u043c \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0447\u0430\u0441\u0442\u043e\u0442\u043d\u044b\u0439 \u0441\u043b\u043e\u0432\u0430\u0440\u044c, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u0431\u044b\u0441\u0442\u0440\u043e\u043c C.\u0424\u0438\u0447\u0438, \u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435 \u0432\u0441\u0435 \u0437\u043d\u0430\u044e\u0442: \u041f\u043e\u043c\u0438\u043c\u043e \u0442\u043e\u0433\u043e, \u0447\u0442\u043e Counter \u0438\u0437\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043b\u0438\u0448\u043d\u0438\u0445 \u0446\u0438\u043a\u043b\u043e\u0432, \u0443 \u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u0441\u0443\u043f\u0435\u0440\u0441\u0438\u043b\u044b:\u041c\u0435\u0442\u043e\u0434 .most_common(k): \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0437  \u0441\u0430\u043c\u044b\u0445 \u0447\u0430\u0441\u0442\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 [(\u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e), &#8230;]. \u0415\u0441\u043b\u0438 \u043d\u0430 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u0440\u043e\u0441\u044f\u0442 \u0440\u0435\u0448\u0438\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443 \u201cTop K Frequent Elements\u201d \u2014 \u0432\u044b \u0443\u0436\u0435 \u0437\u043d\u0430\u0435\u0442\u0435, \u043a\u0430\u043a\u043e\u0439 \u043c\u0435\u0442\u043e\u0434 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043f\u043e\u0434\u0441\u0447\u0435\u0442\u0430 \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438.\u0410\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0430: \u042d\u0442\u043e \u0441\u0430\u043c\u043e\u0435 \u0432\u043a\u0443\u0441\u043d\u043e\u0435. \u0421\u0447\u0435\u0442\u0447\u0438\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c (+), \u0432\u044b\u0447\u0438\u0442\u0430\u0442\u044c (-), \u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u0442\u044c (&amp; \u2014 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u043e\u0431\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f) \u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0442\u044c (| \u2014 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435). \u042d\u0442\u043e \u0437\u0432\u0443\u0447\u0438\u0442 \u043a\u0430\u043a \u043c\u0430\u0433\u0438\u044f, \u043d\u043e \u043d\u0435\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u0432\u044b\u0440\u0443\u0447\u0430\u0435\u0442 \u043f\u0440\u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445.\u0413\u0434\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u0445:\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0441\u0442\u0440\u043e\u043a \u043d\u0430 \u0430\u043d\u0430\u0433\u0440\u0430\u043c\u043c\u044b: \u0418\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0441\u043e\u0441\u0442\u0430\u0432\u043e\u0432 \u0434\u0432\u0443\u0445 \u0441\u0442\u0440\u043e\u043a \u0438\u043b\u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432.\u0427\u0430\u0441\u0442\u043e\u0442\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437: \u041b\u044e\u0431\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u0434\u0443\u0445\u0435 \u00ab\u043d\u0430\u0439\u0434\u0438\u0442\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435  \u0440\u0430\u0437\u00bb (Majority Element).\u041f\u043e\u0438\u0441\u043a \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432: \u0417\u0430\u0434\u0430\u0447\u0430 \u00ab\u041d\u0430\u0439\u0442\u0438 \u043f\u0435\u0440\u0432\u044b\u0439 \u043d\u0435\u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0439\u0441\u044f \u0441\u0438\u043c\u0432\u043e\u043b \u0432 \u0441\u0442\u0440\u043e\u043a\u0435\u00bb \u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u0432 \u0434\u0432\u0430 \u0441\u0447\u0435\u0442\u0430. \u0421\u043e\u0437\u0434\u0430\u043b\u0438 Counter, \u043f\u0440\u043e\u0448\u043b\u0438\u0441\u044c \u043f\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435, \u0432\u0435\u0440\u043d\u0443\u043b\u0438 \u043f\u0435\u0440\u0432\u044b\u0439 \u0441\u0438\u043c\u0432\u043e\u043b \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c 1.\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437 \u0436\u0438\u0437\u043d\u0438: Valid Anagram \u041f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u0441 LeetCode: \u0434\u0430\u043d\u044b \u0434\u0432\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 s \u0438 t. \u041d\u0443\u0436\u043d\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c True, \u0435\u0441\u043b\u0438 t \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u043d\u0430\u0433\u0440\u0430\u043c\u043c\u043e\u0439 s (\u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0442\u0435\u0445 \u0436\u0435 \u0431\u0443\u043a\u0432 \u0432 \u0442\u043e\u043c \u0436\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435).\u274c \u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u0432 \u043b\u043e\u0431: \u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u043e\u0431\u0435\u0438\u0445 \u0441\u0442\u0440\u043e\u043a \u0438 \u0438\u0445 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u2014 return sorted(s) == sorted(t). \u041a\u043e\u0440\u043e\u0442\u043a\u043e, \u043d\u043e \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442  \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u041d\u0430 \u0434\u043b\u0438\u043d\u043d\u044b\u0445 \u0441\u0442\u0440\u043e\u043a\u0430\u0445 \u044d\u0442\u043e \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e.\u2705 \u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u0441 Counter: \u041b\u0438\u043d\u0435\u0439\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f  \u043f\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0438 \u043a\u0440\u0430\u0441\u043e\u0442\u0430 \u0432 \u043a\u043e\u0434\u0435.from collections import Counterdef is_anagram(s: str, t: str) -&gt; bool:    # \u041f\u0440\u043e\u0441\u0442\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u043c \u0434\u0432\u0430 \u0447\u0430\u0441\u0442\u043e\u0442\u043d\u044b\u0445 \u0441\u043b\u043e\u0432\u0430\u0440\u044f    return Counter(s) == Counter(t)\u0410 \u0432\u043e\u0442 \u0432\u0430\u043c \u0431\u043e\u043d\u0443\u0441\u043d\u044b\u0439 \u0442\u0440\u044e\u043a \u0441 \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u0435\u043c. \u0417\u0430\u0434\u0430\u0447\u0430 \u201cRansom Note\u201d: \u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0438\u0441\u044c\u043c\u043e ransomNote \u0438\u0437 \u0431\u0443\u043a\u0432, \u0432\u044b\u0440\u0435\u0437\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0436\u0443\u0440\u043d\u0430\u043b\u0430 magazine?def can_construct(ransomNote: str, magazine: str) -&gt; bool:    # \u0412\u044b\u0447\u0438\u0442\u0430\u0435\u043c \u0438\u0437 \u0431\u0443\u043a\u0432 \u043f\u0438\u0441\u044c\u043c\u0430 \u0431\u0443\u043a\u0432\u044b \u0436\u0443\u0440\u043d\u0430\u043b\u0430.     # \u0415\u0441\u043b\u0438 \u0432 \u0438\u0442\u043e\u0433\u0435 \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u043f\u0443\u0441\u0442 \u2014 \u0437\u043d\u0430\u0447\u0438\u0442, \u0431\u0443\u043a\u0432 \u0436\u0443\u0440\u043d\u0430\u043b\u0430 \u0445\u0432\u0430\u0442\u0438\u043b\u043e \u043d\u0430 \u0432\u0441\u0451 \u043f\u0438\u0441\u044c\u043c\u043e!    return len(Counter(ransomNote) &#8212; Counter(magazine)) == 04. defaultdict: \u0417\u0430\u0431\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e KeyError \u043d\u0430\u0432\u0441\u0435\u0433\u0434\u0430\u0422\u0435\u043e\u0440\u0438\u044f: \u0411\u043e\u043b\u044c \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u0441\u043b\u043e\u0432\u0430\u0440\u0435\u0439 \u041b\u044e\u0431\u043e\u0439 \u043f\u0438\u0442\u043e\u043d\u0438\u0441\u0442 \u0440\u0430\u043d\u043e \u0438\u043b\u0438 \u043f\u043e\u0437\u0434\u043d\u043e \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441 KeyError. \u042d\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u043f\u044b\u0442\u0430\u0435\u0442\u0435\u0441\u044c \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a \u043a\u043b\u044e\u0447\u0443 \u0441\u043b\u043e\u0432\u0430\u0440\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0442\u0430\u043c \u0435\u0449\u0435 \u043d\u0435\u0442.\u0412 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u0430\u0434\u0430\u0447\u0430\u0445 \u043c\u044b \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u0438: \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u0443\u0435\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b, \u0441\u0442\u0440\u043e\u0438\u043c \u0433\u0440\u0430\u0444\u044b, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b. \u0418 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0438\u0441\u0430\u0442\u044c \u0440\u0430\u0437\u0434\u0440\u0430\u0436\u0430\u044e\u0449\u0438\u0439 \u0437\u0430\u0449\u0438\u0442\u043d\u044b\u0439 \u043a\u043e\u0434:# \u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0440\u0443\u0442\u0438\u043d\u0430if key not in my_dict:    my_dict[key] = []my_dict[key].append(value)\u0414\u0430, \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434 .setdefault(), \u043d\u043e \u043a\u043e\u0434 \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u043c. defaultdict \u0440\u0435\u0448\u0430\u0435\u0442 \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0440\u0430\u0434\u0438\u043a\u0430\u043b\u044c\u043d\u043e. \u041f\u0440\u0438 \u0435\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0432\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044e-\u0444\u0430\u0431\u0440\u0438\u043a\u0443 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, list, int, set). \u0415\u0441\u043b\u0438 \u0432\u044b \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u0442\u0435\u0441\u044c \u043a \u043d\u0435\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c\u0443 \u043a\u043b\u044e\u0447\u0443, defaultdict \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u044d\u0442\u0443 \u0444\u0430\u0431\u0440\u0438\u043a\u0443, \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438 \u043a\u043b\u0430\u0434\u0435\u0442 \u0435\u0433\u043e \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u043a\u043b\u044e\u0447\u0443. \u041d\u0438\u043a\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a, \u043d\u0438\u043a\u0430\u043a\u0438\u0445 KeyError.\u0413\u0434\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u0445:\u041f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u0433\u0440\u0430\u0444\u043e\u0432 (\u0441\u043f\u0438\u0441\u043a\u0438 \u0441\u043c\u0435\u0436\u043d\u043e\u0441\u0442\u0438): \u042d\u0442\u043e \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u044b\u0439 \u0442\u043e\u043f-1 \u044e\u0437\u043a\u0435\u0439\u0441. \u0413\u0440\u0430\u0444\u044b \u0432 \u0437\u0430\u0434\u0430\u0447\u0430\u0445 \u0447\u0430\u0441\u0442\u043e \u0437\u0430\u0434\u0430\u044e\u0442\u0441\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u043c \u0440\u0435\u0431\u0435\u0440, \u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442\u044c \u0438\u0445 \u0432 \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e.\u0413\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445: \u041a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0441\u043a\u0438\u0434\u0430\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043f\u043e \u043a\u043e\u0440\u0437\u0438\u043d\u0430\u043c (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u043e\u0432\u0430 \u043f\u043e \u0438\u0445 \u0434\u043b\u0438\u043d\u0435 \u0438\u043b\u0438 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0430\u043d\u0430\u0433\u0440\u0430\u043c\u043c\u044b).\u0421\u043b\u043e\u0436\u043d\u044b\u0435 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b: \u041a\u043e\u0433\u0434\u0430 \u0432\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u0441\u043b\u043e\u0432\u0430\u0440\u044c, \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043b\u0435\u0436\u0430\u0442 \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u043b\u043e\u0432\u0430\u0440\u0438 \u0438\u043b\u0438 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430.\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437 \u0436\u0438\u0437\u043d\u0438: \u0421\u0442\u0440\u043e\u0438\u043c \u0433\u0440\u0430\u0444 \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443 \u043d\u0430 \u0433\u0440\u0430\u0444\u044b. \u0412\u0430\u043c \u043d\u0430 \u0432\u0445\u043e\u0434 \u0434\u0430\u044e\u0442 \u043c\u0430\u0441\u0441\u0438\u0432 \u0440\u0435\u0431\u0435\u0440 edges = [[0, 1], [0, 2], [1, 2], [2, 3]]. \u042d\u0442\u043e \u043d\u0435\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0433\u0440\u0430\u0444. \u041d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u043c\u0435\u0436\u043d\u043e\u0441\u0442\u0438 \u2014 \u0441\u043b\u043e\u0432\u0430\u0440\u044c, \u0433\u0434\u0435 \u043a\u043b\u044e\u0447 \u2014 \u044d\u0442\u043e \u0443\u0437\u0435\u043b, \u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u2014 \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u0441\u0435\u0445 \u0435\u0433\u043e \u0441\u043e\u0441\u0435\u0434\u0435\u0439.\u274c \u041a\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0430 \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u0441\u043b\u043e\u0432\u0430\u0440\u044f\u0445 (\u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u043e \u0438 \u0448\u0443\u043c\u043d\u043e):edges = [[0, 1], [0, 2], [1, 2], [2, 3]]graph = {}for u, v in edges:    # \u0417\u0430\u0449\u0438\u0449\u0430\u0435\u043c\u0441\u044f \u043e\u0442 KeyError \u0434\u043b\u044f \u0443\u0437\u043b\u0430 u    if u not in graph:        graph[u] = []    # \u0417\u0430\u0449\u0438\u0449\u0430\u0435\u043c\u0441\u044f \u043e\u0442 KeyError \u0434\u043b\u044f \u0443\u0437\u043b\u0430 v    if v not in graph:        graph[v] = []            graph[u].append(v)    graph[v].append(u)\u2705 \u042d\u043b\u0435\u0433\u0430\u043d\u0442\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0441 defaultdict:from collections import defaultdictedges = [[0, 1], [0, 2], [1, 2], [2, 3]]# \u0413\u043e\u0432\u043e\u0440\u0438\u043c: &#171;\u0415\u0441\u043b\u0438 \u043a\u043b\u044e\u0447\u0430 \u043d\u0435\u0442, \u0441\u043e\u0437\u0434\u0430\u0439 \u043f\u0443\u0441\u0442\u043e\u0439 \u0441\u043f\u0438\u0441\u043e\u043a&#187;graph = defaultdict(list)for u, v in edges:    # \u041d\u0438\u043a\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a! \u041f\u0440\u043e\u0441\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0441\u0435\u0434\u0435\u0439    graph[u].append(v)    graph[v].append(u)\u041a\u043e\u0434 \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u043b\u0441\u044f \u0432 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430, \u0447\u0438\u0442\u0430\u0442\u044c \u0435\u0433\u043e \u0441\u0442\u0430\u043b\u043e \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u044f\u0442\u043d\u0435\u0435, \u0430 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u043e\u043f\u0435\u0447\u0430\u0442\u0430\u0442\u044c\u0441\u044f \u0438\u043b\u0438 \u0437\u0430\u0431\u044b\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043a\u043b\u044e\u0447\u0430 \u0441\u0432\u0435\u043b\u0430\u0441\u044c \u043a \u043d\u0443\u043b\u044e.\u0422\u043e\u0447\u043d\u043e \u0442\u0430\u043a \u0436\u0435 \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438. \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0447\u0442\u043e-\u0442\u043e \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043d\u043e \u0432\u044b \u043d\u0435 \u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Counter (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u043b\u043e\u0433\u0438\u043a\u0430 \u0441\u043b\u043e\u0436\u043d\u0435\u0435 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u0441\u0447\u0435\u0442\u0430), \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 defaultdict(int). \u041f\u0440\u0438 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0438 \u043a \u043f\u0443\u0441\u0442\u043e\u043c\u0443 \u043a\u043b\u044e\u0447\u0443 \u043e\u043d \u0432\u0435\u0440\u043d\u0435\u0442 0, \u0438 \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043c\u0435\u043b\u043e \u043f\u0438\u0441\u0430\u0442\u044c my_dict[key] += 1. \u0410 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u043b\u0435\u0442\u0443 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u043e\u0439\u0434\u0435\u0442 defaultdict(set).5. \u0411\u043e\u043d\u0443\u0441: \u041a\u0440\u0430\u0442\u043a\u0438\u0439 \u043e\u0431\u0437\u043e\u0440 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432\u0415\u0441\u043b\u0438 deque, Counter \u0438 defaultdict \u2014 \u044d\u0442\u043e \u0432\u0430\u0448\u0430 \u0442\u044f\u0436\u0435\u043b\u0430\u044f&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-479001","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/479001","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=479001"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/479001\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=479001"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=479001"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=479001"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}