{"id":13541,"date":"2023-03-15T14:07:09","date_gmt":"2023-03-15T08:07:09","guid":{"rendered":"https:\/\/shra.ru\/?p=13541"},"modified":"2023-03-15T14:09:18","modified_gmt":"2023-03-15T08:09:18","slug":"ts-funkciya-preobrazovaniya-k-kanonicheskomu-puti","status":"publish","type":"post","link":"https:\/\/shra.ru\/2023\/03\/ts-funkciya-preobrazovaniya-k-kanonicheskomu-puti\/","title":{"rendered":"TS: \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 \u043f\u0443\u0442\u0438"},"content":{"rendered":"\n
\u0423\u0432\u0438\u0434\u0435\u043b \u044d\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u0443 \u043d\u0430 leetcode — https:\/\/leetcode.com\/problems\/simplify-path\/, \u0433\u0434\u0435 \u043d\u0435 \u0442\u0430\u043a \u0447\u0430\u0441\u0442\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u0431\u043b\u0438\u0437\u043a\u0438\u0435 \u043a \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e. \u0420\u0430\u043d\u0435\u0435 \u0443\u0436\u0435 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043b \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0434\u043b\u044f PHP<\/a>. \u0417\u0434\u0435\u0441\u044c \u043f\u043e\u0440\u0435\u0448\u0430\u0435\u043c \u0435\u0451 \u0443\u0436\u0435 \u043d\u0430 TS.<\/p>\n\n\n\n\n\n\n\n \u0417\u0430\u0434\u0430\u0447\u0430 \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0439 UNIX \u043f\u0443\u0442\u044c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430:<\/p>\n\n\n\n \u0420\u0430\u0437\u043e\u0431\u044c\u0451\u043c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u043f\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u0443 «\/», \u043f\u043e\u0442\u043e\u043c \u0441\u043e\u0431\u0435\u0440\u0435\u043c \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0443\u0442\u044c, \u0441\u043b\u0435\u0434\u0443\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c \u0432\u044b\u0448\u0435.<\/p>\n\n\n\n \u0423\u0432\u0438\u0434\u0435\u043b \u044d\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u0443 \u043d\u0430 leetcode — https:\/\/leetcode.com\/problems\/simplify-path\/, \u0433\u0434\u0435 \u043d\u0435 \u0442\u0430\u043a \u0447\u0430\u0441\u0442\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u0431\u043b\u0438\u0437\u043a\u0438\u0435 \u043a \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e. \u0420\u0430\u043d\u0435\u0435 \u0443\u0436\u0435 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043b \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0434\u043b\u044f PHP. \u0417\u0434\u0435\u0441\u044c \u043f\u043e\u0440\u0435\u0448\u0430\u0435\u043c \u0435\u0451 \u0443\u0436\u0435 \u043d\u0430 TS.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29],"tags":[158],"class_list":["post-13541","post","type-post","status-publish","format-standard","hentry","category-programmirovanie","tag-razbor-zadach"],"acf":[],"yoast_head":"\n\n
\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h2>\n\n\n\n
function simplifyPath(path: string): string {\n const chunks = path.split('\/');\n\n \/\/ \u0437\u0434\u0435\u0441\u044c \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0447\u0430\u0441\u0442\u0438 \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u0443\u0442\u0438\n const res: string[] = [];\n for (let chunk of chunks) {\n switch (chunk) {\n case '..':\n \/\/ \u043d\u0443\u0436\u043d\u043e \u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043d\u0438\u0436\u0435.\n if (res.length > 0) res.pop();\n break;\n case '.':\n case '':\n \/\/ \u043c\u043d\u043e\u0433\u043e\u043a\u0440\u0430\u0442\u043d\u044b\u0435 \u0441\u043b\u0435\u0448\u0438 \u0438 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u043c\n break;\n default:\n \/\/ \u043d\u0430\u043a\u0430\u043f\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0443\u0442\u044c\n res.push(chunk);\n }\n }\n\n \/\/ \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u043b\u0435\u0448\n return '\/' + res.join('\/');\n};\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"