[{"data":1,"prerenderedAt":2058},["ShallowReactive",2],{"blog-taxonomies":3,"blog-stats":507,"post-2025\u002F2025-12-25-面试算法acm模式构建构建输入输出模板":1083},[4,11,16,21,25,29,36,39,44,47,52,58,63,66,71,76,80,84,87,93,96,101,105,110,113,117,122,127,132,136,141,143,146,151,155,157,162,165,169,173,176,179,183,186,190,193,197,200,205,208,211,214,219,222,228,234,237,239,245,249,253,256,260,266,271,276,281,283,287,290,293,298,301,304,306,308,311,314,316,318,321,327,332,337,342,347,352,354,356,358,361,365,367,369,371,374,376,378,381,386,390,393,396,400,404,407,411,413,415,417,421,423,425,428,431,433,435,437,439,441,443,446,448,450,454,456,459,461,463,465,467,469,471,473,477,483,486,488,491,493,495,497,499,501,503,505],{"category":5,"tags":6},"笔记",[7,8,9,10],"QQ","插件","LiteLoader","美化",{"category":12,"tags":13},"其他",[14,15,10],"博客","IP签名",{"category":17,"tags":18},"杂谈",[19,20],"互联网","观点",{"category":5,"tags":22},[14,23,24],"GitHub","数据可视化",{"category":5,"tags":26},[14,27,28],"访问统计","不蒜子",{"category":30,"tags":31},"工具",[32,33,34,35],"Python","爬虫","选课脚本","广州大学",{"category":5,"tags":37},[38,5],"数学分析",{"category":40,"tags":41},"算法",[42,40,43],"数据结构","线性表",{"category":40,"tags":45},[42,46],"复习",{"category":5,"tags":48},[49,50,51],"高等代数","线性代数","知识点",{"category":5,"tags":53},[14,54,55,56,57],"Typora","PicGo","图床","Markdown",{"category":30,"tags":59},[60,61,62],"Jupyter","工具配置","中文",{"category":30,"tags":64},[65,61,10],"VSCode",{"category":30,"tags":67},[68,69,70,35],"路由器","OpenWrt","校园网",{"category":12,"tags":72},[73,74,75],"网络协议","Wireshark","DEVP2P",{"category":5,"tags":77},[73,74,78,79],"Lua","解码器",{"category":5,"tags":81},[82,5,83],"常微分方程","数学",{"category":5,"tags":85},[86,5,83],"概率论",{"category":30,"tags":88},[89,90,91,92],"Docker","WSL","Windows","磁盘清理",{"category":30,"tags":94},[32,33,95,35],"课程表",{"category":5,"tags":97},[14,98,99,100],"Hexo","Gitalk","评论系统",{"category":5,"tags":102},[14,103,98,104],"Obsidian","写作工具",{"category":12,"tags":106},[107,108,109],"课题研究","泊松分布","参数估计",{"category":12,"tags":111},[107,108,109,112],"组会",{"category":12,"tags":114},[109,115,108,116],"IM模型","统计学",{"category":17,"tags":118},[119,120,121],"软考","网络规划","信息系统项目管理",{"category":30,"tags":123},[124,125,126],"Arch Linux","AppImage","Linux",{"category":5,"tags":128},[129,130,131],"编程语言","计算机科学","内存管理",{"category":5,"tags":133},[134,135],"Canvas","前端",{"category":5,"tags":137},[14,138,139,140],"GitHub Actions","Vite","部署",{"category":5,"tags":142},[135],{"category":5,"tags":144},[135,145],"系统设计",{"category":5,"tags":147},[135,148,149,150],"安全","XSS","CSRF",{"category":152,"tags":153},"项目",[134,154],"PixiJS",{"category":152,"tags":156},null,{"category":40,"tags":158},[42,159,160,161],"栈","队列","JavaScript",{"category":40,"tags":163},[42,164,161],"哈希表",{"category":5,"tags":166},[167,161,168],"ES6","Set",{"category":40,"tags":170},[40,171,172],"动态规划","背包问题",{"category":40,"tags":174},[40,175],"滑动窗口",{"category":40,"tags":177},[42,178,161],"链表",{"category":40,"tags":180},[40,181,161,182],"ACM","面试",{"category":40,"tags":184},[40,161,185],"数据类型转换",{"category":40,"tags":187},[42,188,178,189],"顺序表","TypeScript",{"category":5,"tags":191},[135,154,134,192],"渲染",{"category":5,"tags":194},[135,195,134,196],"富文本编辑","wangEditor",{"category":40,"tags":198},[199,40,178],"力扣",{"category":5,"tags":201},[202,203,204,91],"DNS","加密","网络安全",{"category":5,"tags":206},[135,207],"Axios",{"category":5,"tags":209},[135,207,189,210],"接口封装",{"category":5,"tags":212},[135,213,145],"JWT",{"category":152,"tags":215},[134,216,217,154,218],"画布","React","项目开发",{"category":17,"tags":220},[221],"日志",{"category":5,"tags":223},[224,225,226,227],"Neo4j","图数据库","中心度分析","PageRank",{"category":12,"tags":229},[230,231,232,233],"论文","机器学习","随机森林","保险欺诈",{"category":5,"tags":235},[236],"人工智能",{"category":5,"tags":238},[231,40,32],{"category":12,"tags":240},[241,242,243,244],"共识算法","最长链","区块链","算法设计",{"category":5,"tags":246},[161,247,248,135],"闭包","作用域",{"category":5,"tags":250},[14,138,251,252],"RSS","自动化",{"category":30,"tags":254},[89,90,91,255],"安装",{"category":30,"tags":257},[258,91,259],"MSYS2","开发环境",{"category":5,"tags":261},[262,263,264,265],"团队协作","Git","Commit规范","代码审查",{"category":30,"tags":267},[268,269,270],"oh-my-posh","终端美化","CLI",{"category":5,"tags":272},[273,274,275],"上下文工程","Agent","RAG",{"category":5,"tags":277},[278,279,280],"前端工程化","技术选型","工程基建",{"category":5,"tags":282},[275],{"category":5,"tags":284},[285,286],"SDD","规格驱动开发",{"category":5,"tags":288},[289],"neovim",{"category":5,"tags":291},[292],"技术写作",{"category":5,"tags":294},[295,32,296,89,297],"FastAPI","后端","工程实践",{"category":152,"tags":299},[274,300],"Harness Engineering",{"category":5,"tags":302},[303],"RFC",{"category":152,"tags":305},[274,300,275],{"category":152,"tags":307},[274],{"category":40,"tags":309},[199,40,161,310],"两数之和",{"category":40,"tags":312},[199,40,161,313],"双指针",{"category":40,"tags":315},[199,40,161,178],{"category":40,"tags":317},[199,40,161,175],{"category":40,"tags":319},[199,40,161,320],"回溯",{"category":5,"tags":322},[323,324,325,326],"分布式处理与计算","Spark","Scala","RDD",{"category":5,"tags":328},[323,329,330,331],"线性回归","逻辑回归","监督学习",{"category":5,"tags":333},[323,334,335,336],"数值优化","牛顿法","收敛性",{"category":5,"tags":338},[323,339,340,341],"PCA","数据降维","正则化",{"category":5,"tags":343},[323,344,345,346],"聚类","层次聚类","K-Means",{"category":5,"tags":348},[323,349,350,351],"随机模拟","统计推断","EM算法",{"category":5,"tags":353},[24],{"category":5,"tags":355},[24],{"category":5,"tags":357},[24],{"category":40,"tags":359},[42,360],"图论",{"category":40,"tags":362},[42,363,364],"树","二叉树",{"category":40,"tags":366},[42,160],{"category":40,"tags":368},[42],{"category":40,"tags":370},[42,159],{"category":40,"tags":372},[42,40,373],"复杂度分析",{"category":40,"tags":375},[42,43,178],{"category":40,"tags":377},[42,43,188],{"category":40,"tags":379},[42,380],"基础概念",{"category":17,"tags":382},[383,384,385],"随记","照片","高中",{"category":17,"tags":387},[383,388,389],"团建","战地",{"category":17,"tags":391},[383,392],"生活",{"category":17,"tags":394},[383,395],"文学",{"category":17,"tags":397},[383,398,399],"SCP","模因",{"category":17,"tags":401},[383,402,403],"画集","艺术",{"category":17,"tags":405},[14,406,383],"写作",{"category":17,"tags":408},[383,409,410],"音乐","摇滚",{"category":17,"tags":412},[383,392],{"category":17,"tags":414},[383,409],{"category":17,"tags":416},[383,35,392],{"category":17,"tags":418},[383,419,420],"同人","手书",{"category":17,"tags":422},[383,392],{"category":17,"tags":424},[383,392],{"category":17,"tags":426},[383,427],"植物",{"category":17,"tags":429},[383,430],"读书",{"category":17,"tags":432},[383,392],{"category":17,"tags":434},[383,392],{"category":17,"tags":436},[383,392],{"category":17,"tags":438},[383,392],{"category":17,"tags":440},[383,392],{"category":17,"tags":442},[383,392],{"category":17,"tags":444},[14,445,383],"一周年",{"category":17,"tags":447},[383,392],{"category":17,"tags":449},[383,392],{"category":17,"tags":451},[35,452,453],"开源组织","SITE-193",{"category":17,"tags":455},[383,392],{"category":17,"tags":457},[383,458],"年末",{"category":17,"tags":460},[383,392],{"category":17,"tags":462},[383,392],{"category":17,"tags":464},[14,17],{"category":17,"tags":466},[383,392],{"category":17,"tags":468},[383,392],{"category":17,"tags":470},[383,392],{"category":17,"tags":472},[383,392],{"category":17,"tags":474},[383,475,476],"游戏","Control",{"category":30,"tags":478},[479,480,481,482],"Quadim","图像处理","四叉树","Rust",{"category":17,"tags":484},[14,485],"上线纪念",{"category":17,"tags":487},[383,395],{"category":30,"tags":489},[203,490],"测试",{"category":17,"tags":492},[383],{"category":17,"tags":494},[383,392],{"category":17,"tags":496},[383],{"category":5,"tags":498},[40],{"category":5,"tags":500},[40],{"category":5,"tags":502},[40],{"category":5,"tags":504},[40],{"category":5,"tags":506},[40],[508,512,516,520,524,528,532,536,540,544,548,552,556,560,564,568,572,576,579,583,587,590,594,598,602,606,610,614,618,622,626,630,634,638,642,646,650,654,658,662,666,670,674,678,682,686,690,694,698,702,706,710,714,718,722,726,730,734,738,742,746,750,754,758,762,766,770,774,778,782,786,790,794,798,801,805,809,813,817,821,825,829,833,837,841,845,849,853,857,861,865,869,873,877,881,885,889,893,897,901,904,907,911,915,919,923,927,930,934,938,942,946,950,954,957,961,965,969,973,977,981,984,988,992,996,1000,1004,1007,1011,1015,1019,1023,1027,1031,1035,1039,1043,1047,1051,1055,1059,1063,1067,1071,1075,1079],{"path":509,"words":510,"published":511,"date":156},"\u002Fposts\u002F2024\u002F2024-06-25-liteloaderqqnt",1296,"2024-06-25 11:03:08",{"path":513,"words":514,"published":515,"date":156},"\u002Fposts\u002F2024\u002F2024-06-26-ip签名",0,"2024-06-26 22:53:53",{"path":517,"words":518,"published":519,"date":156},"\u002Fposts\u002F2024\u002F2024-06-29-何加盐中文互联网正在加速崩塌",4853,"2024-06-29 00:47:13",{"path":521,"words":522,"published":523,"date":156},"\u002Fposts\u002F2024\u002F2024-07-12-github-chart",270,"2024-07-12 20:02:50",{"path":525,"words":526,"published":527,"date":156},"\u002Fposts\u002F2024\u002F2024-07-14-访客数统计",192,"2024-07-24 01:34:28",{"path":529,"words":530,"published":531,"date":156},"\u002Fposts\u002F2024\u002F2024-07-26-广大选课脚本",110,"2024-07-26 01:34:28",{"path":533,"words":534,"published":535,"date":156},"\u002Fposts\u002F2024\u002F2024-07-26-数学分析笔记其二",14,"2024-07-26 23:54:02",{"path":537,"words":538,"published":539,"date":156},"\u002Fposts\u002F2024\u002F2024-07-26-数据结构复习其二",12856,"2024-07-26 02:48:08",{"path":541,"words":542,"published":543,"date":156},"\u002Fposts\u002F2024\u002F2024-07-26-数据结构复习相关",32856,"2024-07-26 02:24:14",{"path":545,"words":546,"published":547,"date":156},"\u002Fposts\u002F2024\u002F2024-07-26-线性代数与空间解析几何知识点全汇总",6110,"2024-07-26 03:27:55",{"path":549,"words":550,"published":551,"date":156},"\u002Fposts\u002F2024\u002F2024-07-31-typora-picgo-兰空图床打造markdown写作环境",311,"2024-07-31 12:56:23",{"path":553,"words":554,"published":555,"date":156},"\u002Fposts\u002F2024\u002F2024-09-02-jupyter配置中文",441,"2024-09-02 23:49:05",{"path":557,"words":558,"published":559,"date":156},"\u002Fposts\u002F2024\u002F2024-09-02-自定义vscode背景图片",100,"2024-09-02 23:39:00",{"path":561,"words":562,"published":563,"date":156},"\u002Fposts\u002F2024\u002F2024-09-03-制作gzhu校园网路由器",1423,"2024-09-03 23:43:18",{"path":565,"words":566,"published":567,"date":156},"\u002Fposts\u002F2024\u002F2024-09-26-09-25-2024",136,"2024-09-26 00:49:26",{"path":569,"words":570,"published":571,"date":156},"\u002Fposts\u002F2024\u002F2024-11-04-创建一个网络包解码器分析devp2p协议",1943,"2024-11-04 16:45:19",{"path":573,"words":574,"published":575,"date":156},"\u002Fposts\u002F2024\u002F2025-03-09-2024一些笔记常微分",16,"2024-12-09 22:51:00",{"path":577,"words":574,"published":578,"date":156},"\u002Fposts\u002F2024\u002F2025-03-09-2024一些笔记概率论","2025-03-09 22:51:00",{"path":580,"words":581,"published":582,"date":156},"\u002Fposts\u002F2025\u002F2025-03-01-windows下释放docker占用的wsl空间",164,"2025-03-01 13:54:15",{"path":584,"words":585,"published":586,"date":156},"\u002Fposts\u002F2025\u002F2025-03-01-爬虫实战-爬取广州大学课程表",774,"2025-03-01 14:55:48",{"path":588,"words":530,"published":589,"date":156},"\u002Fposts\u002F2025\u002F2025-04-03-hexo集成gitalk的问题","2025-04-03 14:26:34",{"path":591,"words":592,"published":593,"date":156},"\u002Fposts\u002F2025\u002F2025-09-22-记一次配置obsidian配合hexo写博客",92,"2025-09-22 16:47:52",{"path":595,"words":596,"published":597,"date":156},"\u002Fposts\u002F2025\u002F2025-10-24-10-20课题",204,"2025-10-24 08:15:01",{"path":599,"words":600,"published":601,"date":156},"\u002Fposts\u002F2025\u002F2025-11-02-组会朝花夕拾",501,"2025-11-02 18:56:59",{"path":603,"words":604,"published":605,"date":156},"\u002Fposts\u002F2025\u002F2025-11-05-基于随机加权推断模型im的参数估计算法",481,"2025-11-05 20:51:41",{"path":607,"words":608,"published":609,"date":156},"\u002Fposts\u002F2025\u002F2025-11-09-关于软考高项网规",884,"2025-11-09 19:54:52",{"path":611,"words":612,"published":613,"date":156},"\u002Fposts\u002F2025\u002F2025-11-17-arch-linux运行appimage相关",365,"2025-11-17 09:59:59",{"path":615,"words":616,"published":617,"date":156},"\u002Fposts\u002F2025\u002F2025-11-19-相关概念",2058,"2025-11-19 11:06:20",{"path":619,"words":620,"published":621,"date":156},"\u002Fposts\u002F2025\u002F2025-11-21-web可视化实践canvas",6393,"2025-11-21 14:50:48",{"path":623,"words":624,"published":625,"date":156},"\u002Fposts\u002F2025\u002F2025-11-22-使用-github-actions-自动部署基于vite的项目到-github-pages",272,"2025-11-23 01:59:24",{"path":627,"words":628,"published":629,"date":156},"\u002Fposts\u002F2025\u002F2025-11-22-关于前端包管理器npmpnpmyarn和bun",4890,"2025-11-22 21:21:15",{"path":631,"words":632,"published":633,"date":156},"\u002Fposts\u002F2025\u002F2025-11-23-undo-redo-机制具体实现",7839,"2025-11-23 19:15:00",{"path":635,"words":636,"published":637,"date":156},"\u002Fposts\u002F2025\u002F2025-11-27-前端安全-关于xss与crsf",1866,"2025-11-28 02:05:25",{"path":639,"words":640,"published":641,"date":156},"\u002Fposts\u002F2025\u002F2025-12-05-现代协同-2d-画布编辑器pixijs-v8",4285,"2025-12-05 02:00:16",{"path":643,"words":644,"published":645,"date":156},"\u002Fposts\u002F2025\u002F2025-12-07-杂谈-课题组系统设计",3710,"2025-12-07 21:09:33",{"path":647,"words":648,"published":649,"date":156},"\u002Fposts\u002F2025\u002F2025-12-25-javascript中的数组方法与栈stack和队列queue的实现",474,"2025-11-29 16:58:15",{"path":651,"words":652,"published":653,"date":156},"\u002Fposts\u002F2025\u002F2025-12-25-关于javascript-实现哈希表",189,"2025-11-27 11:31:39",{"path":655,"words":656,"published":657,"date":156},"\u002Fposts\u002F2025\u002F2025-12-25-关于javascript的set方法",332,"2025-12-25 15:26:18",{"path":659,"words":660,"published":661,"date":156},"\u002Fposts\u002F2025\u002F2025-12-25-关于动态规划(背包问题为例)",1238,"2025-11-17 18:24:04",{"path":663,"words":664,"published":665,"date":156},"\u002Fposts\u002F2025\u002F2025-12-25-关于滑动窗口",712,"2025-11-20 15:04:40",{"path":667,"words":668,"published":669,"date":156},"\u002Fposts\u002F2025\u002F2025-12-25-关于链表(javascript)",500,"2025-11-25 13:00:48",{"path":671,"words":672,"published":673,"date":156},"\u002Fposts\u002F2025\u002F2025-12-25-面试算法acm模式构建构建输入输出模板",2051,"2025-12-25 23:09:45",{"path":675,"words":676,"published":677,"date":156},"\u002Fposts\u002F2025\u002F2025-12-26-javascript-数字数组字符串的处理",483,"2025-12-26 11:20:25",{"path":679,"words":680,"published":681,"date":156},"\u002Fposts\u002F2025\u002F2025-12-26-javascripttypescript-的顺序表链表实现",446,"2025-12-26 12:16:12",{"path":683,"words":684,"published":685,"date":156},"\u002Fposts\u002F2025\u002F2025-12-27-前端画布设计vol-1-实现基础yuan素渲染和状态控制",2136,"2025-12-28 01:23:08",{"path":687,"words":688,"published":689,"date":156},"\u002Fposts\u002F2025\u002F2025-12-27-前端画布设计vol-2-实现富文本编辑",1838,"2025-12-28 02:58:47",{"path":691,"words":692,"published":693,"date":156},"\u002Fposts\u002F2025\u002F2025-12-27-算法刷题-关于链表操作",2135,"2025-12-27 16:12:42",{"path":695,"words":696,"published":697,"date":156},"\u002Fposts\u002F2025\u002F2025-12-27-配置dnscrypt-proxy实现加密dns服务windows",1899,"2025-11-15 01:06:37",{"path":699,"words":700,"published":701,"date":156},"\u002Fposts\u002F2025\u002F2025-12-28-前端-关于网络请求xhrajaxfetchaxios",7788,"2025-10-28 15:48:46",{"path":703,"words":704,"published":705,"date":156},"\u002Fposts\u002F2025\u002F2025-12-28-前端-接口封装与请求规范axios为例",2373,"2025-12-29 01:01:18",{"path":707,"words":708,"published":709,"date":156},"\u002Fposts\u002F2025\u002F2025-12-28-前端-身份验证管理-基于-jwt-token-的实现",2709,"2025-11-23 22:04:41",{"path":711,"words":712,"published":713,"date":156},"\u002Fposts\u002F2025\u002F2025-12-29-记canvas画布项目开发",6254,"2025-12-29 04:52:15",{"path":715,"words":716,"published":717,"date":156},"\u002Fposts\u002F2025\u002Fabout-site",116,"2025-03-31 16:44:24",{"path":719,"words":720,"published":721,"date":156},"\u002Fposts\u002F2025\u002F使用neo4j图数据科学库gds进行中心度分析",143,"2025-04-02 23:37:24",{"path":723,"words":724,"published":725,"date":156},"\u002Fposts\u002F2026\u002F2026-01-03-论文实训草稿",10445,"2026-01-03 14:10:49",{"path":727,"words":728,"published":729,"date":156},"\u002Fposts\u002F2026\u002F2026-01-06-人工智能导论",11461,"2026-01-07 03:25:49",{"path":731,"words":732,"published":733,"date":156},"\u002Fposts\u002F2026\u002F2026-01-07-机器学习相关算法",82,"2026-01-08 02:28:13",{"path":735,"words":736,"published":737,"date":156},"\u002Fposts\u002F2026\u002F2026-01-16-关于低复杂度最长链共识算法设计",4466,"2026-01-16 10:33:23",{"path":739,"words":740,"published":741,"date":156},"\u002Fposts\u002F2026\u002F2026-01-19-杂记2026-01-19",5754,"2026-01-20 01:03:26",{"path":743,"words":744,"published":745,"date":156},"\u002Fposts\u002F2026\u002F2026-01-22-github-action-自动同步博客到-github-主页",1069,"2026-01-22 16:31:47",{"path":747,"words":748,"published":749,"date":156},"\u002Fposts\u002F2026\u002F2026-03-01-windows-wsl安装docker",257,"2026-03-01 20:55:31",{"path":751,"words":752,"published":753,"date":156},"\u002Fposts\u002F2026\u002F2026-03-14-关于-msys2",701,"2026-03-15 03:05:04",{"path":755,"words":756,"published":757,"date":156},"\u002Fposts\u002F2026\u002F2026-03-28-团队项目协作规范随记",2419,"2026-03-29 05:33:50",{"path":759,"words":760,"published":761,"date":156},"\u002Fposts\u002F2026\u002F2026-03-29-oh-my-posh配置分享",104,"2026-03-29 16:34:43",{"path":763,"words":764,"published":765,"date":156},"\u002Fposts\u002F2026\u002F2026-06-13-从上下文工程到-agent-harness-engineering",8840,"2026-06-13 21:06:20",{"path":767,"words":768,"published":769,"date":156},"\u002Fposts\u002F2026\u002F2026-07-13-简谈前端基建质量标准与ai友好建设",3814,"2026-07-13 21:06:20",{"path":771,"words":772,"published":773,"date":156},"\u002Fposts\u002F2026\u002F2026-07-15-agentic-rag-系统实践",13357,"2026-07-15 21:06:20",{"path":775,"words":776,"published":777,"date":156},"\u002Fposts\u002F2026\u002F2026-07-18-简谈sdd规范驱动开发-copy",4476,"2026-07-18 11:06:20",{"path":779,"words":780,"published":781,"date":156},"\u002Fposts\u002F2026\u002F2026-07-20-个人neovim配置分享",366,"2026-07-22 13:46:50",{"path":783,"words":784,"published":785,"date":156},"\u002Fposts\u002F2026\u002F2026-07-20-关于技术写作-设计文档",6763,"2026-07-20 13:46:50",{"path":787,"words":788,"published":789,"date":156},"\u002Fposts\u002F2026\u002F2026-07-29-fastapi-工程实践随记",3417,"2026-07-29 04:58:34",{"path":791,"words":792,"published":793,"date":156},"\u002Fposts\u002Frfc_agentic_project\u002F2026-06-19-rfc-liskin_code_agent",3563,"2026-06-19 15:18:20",{"path":795,"words":796,"published":797,"date":156},"\u002Fposts\u002Frfc_agentic_project\u002F2026-07-25-rfc-glushkov_ogas",13461,"2026-07-28 23:46:50",{"path":799,"words":800,"published":793,"date":156},"\u002Fposts\u002Frfc_agentic_project\u002F2026-08-03-adr-ogas-arkhiv",2698,{"path":802,"words":803,"published":804,"date":156},"\u002Fposts\u002Frfc_agentic_project\u002Frag\u002F2026-08-12-arkhiv_rag-vol-1",4366,"2026-08-12 15:18:20",{"path":806,"words":807,"published":808,"date":156},"\u002Fposts\u002Fleetcode\u002F2025-12-25-力扣百题速练javascripttypescriptvol-1",3108,"2025-12-25 13:57:08",{"path":810,"words":811,"published":812,"date":156},"\u002Fposts\u002Fleetcode\u002F2025-12-26-力扣百题速练javascripttypescriptvol-2",3185,"2025-12-26 13:57:08",{"path":814,"words":815,"published":816,"date":156},"\u002Fposts\u002Fleetcode\u002F2025-12-28-力扣百题速练javascripttypescriptvol-3",2533,"2025-12-29 02:15:44",{"path":818,"words":819,"published":820,"date":156},"\u002Fposts\u002Fleetcode\u002F2026-01-17-力扣百题速练javascripttypescriptvol-4",3024,"2026-01-17 22:53:01",{"path":822,"words":823,"published":824,"date":156},"\u002Fposts\u002Fleetcode\u002F2026-01-19-力扣百题速练javascripttypescriptvol-5",293,"2026-01-19 15:15:12",{"path":826,"words":827,"published":828,"date":156},"\u002Fposts\u002F分布式处理与计算\u002F分布式处理与计算spark系统与scala语言",4320,"2026-07-06 14:10:49",{"path":830,"words":831,"published":832,"date":156},"\u002Fposts\u002F分布式处理与计算\u002F分布式处理与计算分类与回归分析",2081,"2026-07-07 12:40:29",{"path":834,"words":835,"published":836,"date":156},"\u002Fposts\u002F分布式处理与计算\u002F分布式处理与计算数值优化方法",2182,"2026-07-07 13:50:29",{"path":838,"words":839,"published":840,"date":156},"\u002Fposts\u002F分布式处理与计算\u002F分布式处理与计算数据降维",1583,"2026-07-07 21:50:29",{"path":842,"words":843,"published":844,"date":156},"\u002Fposts\u002F分布式处理与计算\u002F分布式处理与计算聚类分析",1882,"2026-07-07 16:50:29",{"path":846,"words":847,"published":848,"date":156},"\u002Fposts\u002F分布式处理与计算\u002F分布式处理与计算随机模拟与统计推断",2433,"2026-07-06 22:40:29",{"path":850,"words":851,"published":852,"date":156},"\u002Fposts\u002F数据可视化\u002F2026-06-14-数据可视化-基本图像",10011,"2026-06-14 20:18:20",{"path":854,"words":855,"published":856,"date":156},"\u002Fposts\u002F数据可视化\u002F2026-06-14-数据可视化-概论",10030,"2026-06-14 15:18:20",{"path":858,"words":859,"published":860,"date":156},"\u002Fposts\u002F数据可视化\u002F2026-06-15-数据可视化-可视化库",2032,"2026-06-15 20:18:20",{"path":862,"words":863,"published":864,"date":156},"\u002Fposts\u002F数据结构\u002F2025-09-29-数据结构-图",5451,"2025-04-15 20:48:06",{"path":866,"words":867,"published":868,"date":156},"\u002Fposts\u002F数据结构\u002F2025-09-29-数据结构-树",4211,"2025-04-30 02:19:06",{"path":870,"words":871,"published":872,"date":156},"\u002Fposts\u002F数据结构\u002F2025-09-29-数据结构-队列",921,"2025-04-11 15:30:08",{"path":874,"words":875,"published":876,"date":156},"\u002Fposts\u002F数据结构\u002F关于数据结构的一些想法",456,"2025-04-04 19:13:49",{"path":878,"words":879,"published":880,"date":156},"\u002Fposts\u002F数据结构\u002F数据结构-栈",920,"2025-04-18 00:17:37",{"path":882,"words":883,"published":884,"date":156},"\u002Fposts\u002F数据结构\u002F数据结构-算法复杂度",2153,"2025-04-05 16:09:55",{"path":886,"words":887,"published":888,"date":156},"\u002Fposts\u002F数据结构\u002F数据结构-线性表链表",4572,"2025-04-06 00:24:40",{"path":890,"words":891,"published":892,"date":156},"\u002Fposts\u002F数据结构\u002F数据结构-线性表顺序表",4191,"2025-04-05 22:09:59",{"path":894,"words":895,"published":896,"date":156},"\u002Fposts\u002F数据结构\u002F数据结构-绪论",2881,"2025-04-05 11:31:22",{"path":898,"words":899,"published":156,"date":900},"\u002Fposts\u002F杂记\u002F2023-12-26-2023年12月26日",7,"2023-12-26 23:51:33",{"path":902,"words":899,"published":156,"date":903},"\u002Fposts\u002F杂记\u002F2024-01-01-2024团建","2024-01-01 01:51:27",{"path":905,"words":581,"published":156,"date":906},"\u002Fposts\u002F杂记\u002F2024-01-09-随记","2024-01-09 20:50:35",{"path":908,"words":909,"published":156,"date":910},"\u002Fposts\u002F杂记\u002F2024-03-12-花名",5275,"2024-03-12 16:04:23",{"path":912,"words":913,"published":156,"date":914},"\u002Fposts\u002F杂记\u002F2024-04-15-逆模因",1353,"2024-04-15 00:26:16",{"path":916,"words":917,"published":156,"date":918},"\u002Fposts\u002F杂记\u002F2024-05-03-艺作",27,"2024-05-03 00:01:00",{"path":920,"words":921,"published":156,"date":922},"\u002Fposts\u002F杂记\u002F2024-05-21-关于博客",1720,"2024-02-21 23:21:11",{"path":924,"words":925,"published":156,"date":926},"\u002Fposts\u002F杂记\u002F2024-06-20-dnvrc维克多崔专访-2023",2036,"2024-06-20 00:28:39",{"path":928,"words":760,"published":156,"date":929},"\u002Fposts\u002F杂记\u002F2024-06-25-6月25日随记","2024-06-25 12:46:36",{"path":931,"words":932,"published":156,"date":933},"\u002Fposts\u002F杂记\u002F2024-06-25-歌名-想見星星",148,"2024-06-25 22:47:59",{"path":935,"words":936,"published":156,"date":937},"\u002Fposts\u002F杂记\u002F2024-07-11-桂花岗",6,"2024-07-11 00:28:17",{"path":939,"words":940,"published":156,"date":941},"\u002Fposts\u002F杂记\u002F2024-07-15-rolling-bocci",9,"2024-07-15 21:25:56",{"path":943,"words":944,"published":156,"date":945},"\u002Fposts\u002F杂记\u002F2024-07-22-七月九日",34,"2024-07-09 17:54:23",{"path":947,"words":948,"published":156,"date":949},"\u002Fposts\u002F杂记\u002F2024-07-22-六月随记",1052,"2024-07-22 01:03:19",{"path":951,"words":952,"published":156,"date":953},"\u002Fposts\u002F杂记\u002F2024-07-22-石菖蒲",41,"2024-07-10 01:26:05",{"path":955,"words":514,"published":156,"date":956},"\u002Fposts\u002F杂记\u002F2024-07-23-新书","2024-07-23 01:05:49",{"path":958,"words":959,"published":156,"date":960},"\u002Fposts\u002F杂记\u002F2024-07-29-年前",74,"2024-07-29 23:59:07",{"path":962,"words":963,"published":156,"date":964},"\u002Fposts\u002F杂记\u002F2024-07-30-周边",138,"2024-07-30 02:03:23",{"path":966,"words":967,"published":156,"date":968},"\u002Fposts\u002F杂记\u002F2024-07-31-2024-7-31日",185,"2024-07-31 01:21:52",{"path":970,"words":971,"published":156,"date":972},"\u002Fposts\u002F杂记\u002F2024-08-02-八月",1710,"2024-08-30 00:31:02",{"path":974,"words":975,"published":156,"date":976},"\u002Fposts\u002F杂记\u002F2024-09-01-九月",1484,"2024-09-26 16:30:15",{"path":978,"words":979,"published":156,"date":980},"\u002Fposts\u002F杂记\u002F2024-09-08-2024年9月8日",97,"2024-09-08 13:59:36",{"path":982,"words":514,"published":156,"date":983},"\u002Fposts\u002F杂记\u002F2024-09-19-博客站的一周年","2024-09-18 23:36:24",{"path":985,"words":986,"published":156,"date":987},"\u002Fposts\u002F杂记\u002F2024-10-03-十月",1028,"2024-10-31 23:54:27",{"path":989,"words":990,"published":156,"date":991},"\u002Fposts\u002F杂记\u002F2024-11-04-十一月",2134,"2024-11-30 00:04:39",{"path":993,"words":994,"published":156,"date":995},"\u002Fposts\u002F杂记\u002F2024-11-10-gzhu-site-193",80,"2024-11-10 19:19:12",{"path":997,"words":998,"published":156,"date":999},"\u002Fposts\u002F杂记\u002F2024-12-01-十二月",455,"2024-12-30 23:13:47",{"path":1001,"words":1002,"published":156,"date":1003},"\u002Fposts\u002F杂记\u002F2024-12-21-年末",23,"2024-12-21 23:21:49",{"path":1005,"words":522,"published":156,"date":1006},"\u002Fposts\u002F杂记\u002F2025-01-30-一月","2025-01-30 23:44:41",{"path":1008,"words":1009,"published":156,"date":1010},"\u002Fposts\u002F杂记\u002F2025-03-01-二月",224,"2025-02-28 00:11:08",{"path":1012,"words":1013,"published":156,"date":1014},"\u002Fposts\u002F杂记\u002F2025-03-01-博客杂谈",344,"2025-03-01 16:03:18",{"path":1016,"words":1017,"published":156,"date":1018},"\u002Fposts\u002F杂记\u002F2025-03-05-三月",2090,"2025-03-05 19:17:28",{"path":1020,"words":1021,"published":156,"date":1022},"\u002Fposts\u002F杂记\u002F2025-07-10-七月",361,"2025-07-10 22:04:32",{"path":1024,"words":1025,"published":156,"date":1026},"\u002Fposts\u002F杂记\u002F2025-09-21-九月",781,"2025-09-21 20:53:37",{"path":1028,"words":1029,"published":156,"date":1030},"\u002Fposts\u002F杂记\u002F2025-10-09-十月",591,"2025-10-09 00:35:07",{"path":1032,"words":1033,"published":156,"date":1034},"\u002Fposts\u002F杂记\u002Fcontrol",13,"2023-09-25 13:03:59",{"path":1036,"words":1037,"published":156,"date":1038},"\u002Fposts\u002F杂记\u002Fquadim四叉树图像处理",1094,"2023-10-21 11:27:06",{"path":1040,"words":1041,"published":156,"date":1042},"\u002Fposts\u002F杂记\u002Fsuccess",24,"2023-09-22 15:59:07",{"path":1044,"words":1045,"published":156,"date":1046},"\u002Fposts\u002F杂记\u002F三光年",295,"2023-11-18 04:18:40",{"path":1048,"words":1049,"published":156,"date":1050},"\u002Fposts\u002F杂记\u002F加密测试",961,"2023-11-21 14:24:01",{"path":1052,"words":1053,"published":156,"date":1054},"\u002Fposts\u002F杂记\u002F啊啊啊啊啊啊啊",54,"2023-09-20 17:29:33",{"path":1056,"words":1057,"published":156,"date":1058},"\u002Fposts\u002F杂记\u002F杂谈",124,"2023-09-25 23:11:32",{"path":1060,"words":1061,"published":156,"date":1062},"\u002Fposts\u002F杂记\u002F艹",25,"2023-10-21 17:40:43",{"path":1064,"words":1065,"published":1066,"date":156},"\u002Fposts\u002F神经网络\u002F神经网络与深度学习卷积神经网络",3168,"2026-06-07 11:23:08",{"path":1068,"words":1069,"published":1070,"date":156},"\u002Fposts\u002F神经网络\u002F神经网络与深度学习循环神经网络",2348,"2026-06-07 11:33:08",{"path":1072,"words":1073,"published":1074,"date":156},"\u002Fposts\u002F神经网络\u002F神经网络与深度学习改进学习方法",3360,"2026-06-07 10:13:08",{"path":1076,"words":1077,"published":1078,"date":156},"\u002Fposts\u002F神经网络\u002F神经网络与深度学习深度生成模型",2727,"2026-06-07 11:43:08",{"path":1080,"words":1081,"published":1082,"date":156},"\u002Fposts\u002F神经网络\u002F神经网络与深度学习神经网络基础",3205,"2026-06-07 10:03:08",{"id":1084,"title":1085,"abbrlink":1086,"body":1087,"category":40,"cover":156,"date":156,"description":1093,"extension":2049,"mathjax":2050,"meta":2051,"navigation":2050,"path":671,"published":673,"readingMinutes":899,"seo":2054,"stem":2055,"sticky":156,"swiper_index":156,"tags":2056,"updated":156,"words":672,"__hash__":2057},"posts\u002Fposts\u002F2025\u002F2025-12-25-面试算法ACM模式构建构建输入输出模板.md","2025-12-25-面试算法ACM模式构建构建输入输出模板（Javascript）","31996",{"type":1088,"value":1089,"toc":2017},"minimark",[1090,1094,1099,1102,1113,1116,1121,1127,1158,1162,1168,1199,1203,1209,1250,1254,1260,1267,1299,1304,1315,1318,1321,1346,1350,1354,1358,1373,1377,1384,1388,1393,1396,1402,1408,1411,1418,1424,1464,1467,1473,1477,1480,1483,1486,1489,1492,1495,1498,1504,1510,1514,1517,1520,1523,1526,1529,1532,1535,1541,1547,1556,1559,1562,1565,1568,1571,1573,1576,1582,1588,1592,1595,1601,1607,1611,1614,1620,1626,1630,1633,1639,1645,1649,1652,1658,1664,1668,1671,1682,1685,1694,1697,1702,1705,1711,1717,1721,1724,1735,1738,1751,1754,1762,1765,1771,1777,1781,1784,1797,1800,1803,1806,1812,1818,1822,1825,1836,1839,1852,1855,1860,1863,1869,1875,1879,1882,1885,1888,1891,1894,1897,1900,1906,1912,1916,1919,1922,1925,1928,1930,1933,1939,1945,1949,2008],[1091,1092,1093],"p",{},"我觉得就应该像力扣那样搞关键函数模式，至少前端岗可以这么搞\n上 ACM 感觉除了 cpp 和 py 其他处理输入输出要麻烦死，遂在这里记录 js 的处理模板",[1095,1096,1098],"h2",{"id":1097},"一基础模板","一、基础模板",[1091,1100,1101],{},"我们先来看一个基础模板",[1103,1104,1110],"pre",{"className":1105,"code":1107,"language":1108,"meta":1109},[1106],"language-js","const rl = require(\"readline\").createInterface({ input: process.stdin });\nvar iter = rl[Symbol.asyncIterator]();\nconst readline = async () => (await iter.next()).value;\n\nvoid (async function () {\n  \u002F\u002F 直接输出需要的字符串，不需要处理输入\n  console.log(\"Hello Nowcoder!\");\n})();\n","js","",[1111,1112,1107],"code",{"__ignoreMap":1109},[1091,1114,1115],{},"我们接下来逐行解析下每行代码的作用",[1117,1118,1120],"h5",{"id":1119},"_1-引入-readline-模块并创建接口","1. 引入 readline 模块并创建接口",[1103,1122,1125],{"className":1123,"code":1124,"language":1108,"meta":1109},[1106],"const rl = require(\"readline\").createInterface({ input: process.stdin });\n",[1111,1126,1124],{"__ignoreMap":1109},[1128,1129,1130,1141,1151],"ul",{},[1131,1132,1133,1136,1137,1140],"li",{},[1111,1134,1135],{},"require(\"readline\")","：引入 Node.js 内置的",[1111,1138,1139],{},"readline","模块，这个模块用于从命令行（标准输入）读取一行一行的输入。",[1131,1142,1143,1146,1147,1150],{},[1111,1144,1145],{},"createInterface({ input: process.stdin })","：创建一个输入接口，指定输入源为",[1111,1148,1149],{},"process.stdin","（标准输入，也就是用户在控制台输入的内容）。",[1131,1152,1153,1154,1157],{},"变量",[1111,1155,1156],{},"rl","就是这个输入接口的实例，后续通过它来控制输入的读取。",[1117,1159,1161],{"id":1160},"_2-创建异步迭代器","2. 创建异步迭代器",[1103,1163,1166],{"className":1164,"code":1165,"language":1108,"meta":1109},[1106],"var iter = rl[Symbol.asyncIterator]();\n",[1111,1167,1165],{"__ignoreMap":1109},[1128,1169,1170,1176,1187],{},[1131,1171,1172,1175],{},[1111,1173,1174],{},"Symbol.asyncIterator","是 Javascript 的一个内置符号，用于定义对象的异步迭代器",[1131,1177,1178,1179,1182,1183,1186],{},"这里通过",[1111,1180,1181],{},"rl[Symbol.asyncIterator]()","获取 rl 接口的异步迭代器，赋值给",[1111,1184,1185],{},"iter","。",[1131,1188,1189,1190,1193,1194,1198],{},"异步迭代器的作用是：可以通过",[1111,1191,1192],{},"next()","方法",[1195,1196,1197],"strong",{},"异步地获取下一行输入","（因为输入是用户手动输入的，属于异步操作）。",[1117,1200,1202],{"id":1201},"_3-定义读取一行输入的函数","3. 定义读取一行输入的函数",[1103,1204,1207],{"className":1205,"code":1206,"language":1108,"meta":1109},[1106],"const readline = async () => (await iter.next()).value;\n",[1111,1208,1206],{"__ignoreMap":1109},[1128,1210,1211,1218,1229,1243],{},[1131,1212,1213,1214,1217],{},"这是一个异步函数（",[1111,1215,1216],{},"async","标记），作用是读取一行输入。",[1131,1219,1220,1221,1224,1225,1228],{},"调用",[1111,1222,1223],{},"iter.next()","会返回一个 Promise，",[1111,1226,1227],{},"await","会等待这个 Promise 完成，获取下一行输入的结果。",[1131,1230,1231,1232,1235,1236,1238,1239,1242],{},"结果的",[1111,1233,1234],{},"value","属性就是读取到的一行字符串（如果没有更多输入，",[1111,1237,1234],{},"会是",[1111,1240,1241],{},"undefined","）。",[1131,1244,1245,1246,1249],{},"简单说：调用",[1111,1247,1248],{},"readline()","就可以得到一行输入的内容（字符串类型）",[1117,1251,1253],{"id":1252},"_4-立即执行的异步函数核心逻辑区","4. 立即执行的异步函数（核心逻辑区）",[1103,1255,1258],{"className":1256,"code":1257,"language":1108,"meta":1109},[1106],"void (async function () {\n  \u002F\u002F Write your code here 👉 你的核心代码写在这里\n  \u002F\u002F 直接输出需要的字符串，不需要处理输入 console.log(\"Hello Nowcoder!\");\n})();\n",[1111,1259,1257],{"__ignoreMap":1109},[1091,1261,1262,1263,1266],{},"这是整个代码的",[1195,1264,1265],{},"执行入口","，也就是你需要编写核心逻辑的地方，我们拆解一下：",[1128,1268,1269],{},[1131,1270,1271,1274,1275,1278,1279],{},[1111,1272,1273],{},"void async function (){...}()",":这是一个",[1195,1276,1277],{},"立即执行的异步函数表达式"," (IIFE)。\ntags:\n",[1128,1280,1281,1286,1292],{},[1131,1282,1283,1285],{},[1111,1284,1216],{},"标记：允许函数内部使用 await 关键字（因为读取输入输出是异步操作）。",[1131,1287,1288,1291],{},[1111,1289,1290],{},"void","：避免函数执行后返回值可能导致的语法问题，单纯让函数执行。",[1131,1293,1294,1295,1298],{},"最后的",[1111,1296,1297],{},"()","：表示定义后立即执行这个函数。",[1300,1301,1303],"h4",{"id":1302},"核心代码写在哪里","核心代码写在哪里？",[1091,1305,1306,1307,1310,1311,1314],{},"答案是：写在",[1111,1308,1309],{},"void async function () { ... }","这个函数内部（也就是注释",[1111,1312,1313],{},"\u002F\u002F Write your code here","的位置）。根据题目的输入格式不同，你需要修改这个区域的代码。具体常见的输入格式见我第二部分详细讲解。",[1300,1316,1317],{"id":1317},"总结",[1091,1319,1320],{},"这个模板的作用是标准化输入读取流程：",[1322,1323,1324,1336,1343],"ol",{},[1131,1325,1326,1327,1329,1330,1332,1333,1335],{},"准备好读取输入的工具（",[1111,1328,1156],{},"接口，",[1111,1331,1185],{},"迭代器，",[1111,1334,1139],{},"函数）。",[1131,1337,1338,1339,1342],{},"在立即执行的异步函数中，通过",[1111,1340,1341],{},"await readline()","获取输入。",[1131,1344,1345],{},"在函数内部编写你的核心逻辑（处理输入、计算、输出结果）。",[1095,1347,1349],{"id":1348},"二常见出题形式","二、常见出题形式",[1300,1351,1353],{"id":1352},"_1单组-ab","1.单组 A+B",[1355,1356,1357],"h6",{"id":1357},"描述",[1091,1359,1360,1361,1364,1365,1368,1369,1372],{},"给定两个整数",[1111,1362,1363],{},"a","和",[1111,1366,1367],{},"b","，请你求出",[1111,1370,1371],{},"a + b","的值。",[1355,1374,1376],{"id":1375},"输入描述","输入描述：",[1091,1378,1379,1380,1364,1382],{},"第一行有两个整数",[1111,1381,1363],{},[1111,1383,1367],{},[1355,1385,1387],{"id":1386},"输出描述","输出描述：",[1091,1389,1390,1391,1372],{},"输入一个整数，代表",[1111,1392,1371],{},[1355,1394,1395],{"id":1395},"示例",[1103,1397,1400],{"className":1398,"code":1399,"language":1108,"meta":1109},[1106],"输入：\n1 2\n输出：\n3\n",[1111,1401,1399],{"__ignoreMap":1109},[1103,1403,1406],{"className":1404,"code":1405,"language":1108,"meta":1109},[1106],"const rl = require(\"readline\").createInterface({ input: process.stdin });\nvar iter = rl[Symbol.asyncIterator]();\nconst readline = async () => (await iter.next()).value;\n\nvoid (async function () {\n  \u002F\u002F Write your code here\n  while ((line = await readline())) {\n    let tokens = line.split(\" \");\n    let a = parseInt(tokens[0]);\n    let b = parseInt(tokens[1]);\n    console.log(a + b);\n  }\n})();\n",[1111,1407,1405],{"__ignoreMap":1109},[1355,1409,1410],{"id":1410},"核心逻辑解析",[1091,1412,1413,1414,1417],{},"函数内部的",[1111,1415,1416],{},"while","循环：",[1103,1419,1422],{"className":1420,"code":1421,"language":1108,"meta":1109},[1106],"while(line = await readline()) { ... }\n",[1111,1423,1421],{"__ignoreMap":1109},[1128,1425,1426,1439,1451],{},[1131,1427,1428,1429,1432,1433,1435,1436,1438],{},"作用：",[1195,1430,1431],{},"持续读取每一行输入"," ，直到没有更多输入(",[1111,1434,1248],{},"返回",[1111,1437,1241],{},"，循环终止)。",[1131,1440,1441,1444,1445,1447,1448,1186],{},[1111,1442,1443],{},"line = await readline()","：先调用",[1111,1446,1248],{},"读取每一行输入，赋值给",[1111,1449,1450],{},"line",[1131,1452,1453,1454,1456,1457,1459,1460,1463],{},"当没有输入时，",[1111,1455,1248],{},"先返回",[1111,1458,1241],{},"，循环条件为",[1111,1461,1462],{},"false","，退出循环。",[1091,1465,1466],{},"循环内部的代码",[1103,1468,1471],{"className":1469,"code":1470,"language":1108,"meta":1109},[1106],"let tokens = line.split(\" \"); \u002F\u002F 将一行输入按空格分割成数组（比如输入\"1 2\"，得到[\"1\", \"2\"]）\nlet a = parseInt(tokens[0]); \u002F\u002F 将第一个元素转为整数\nlet b = parseInt(tokens[1]); \u002F\u002F 将第二个元素转为整数 console.log(a + b); \u002F\u002F 输出结果\n",[1111,1472,1470],{"__ignoreMap":1109},[1300,1474,1476],{"id":1475},"_2多组_ab_eof-形式","2.多组_A+B_EOF 形式",[1355,1478,1357],{"id":1479},"描述-1",[1091,1481,1482],{},"给定若干组测试数据，读取至文件末尾为止，每组数据有两个整数 a 和 b，请你求出 a + b 的值。",[1355,1484,1375],{"id":1485},"输入描述-1",[1091,1487,1488],{},"每行有两个整数 a 和 b，读取至文件末尾为止",[1355,1490,1386],{"id":1491},"输出描述-1",[1091,1493,1494],{},"输出若干行，每行一个整数，代表 a + b 的值。",[1355,1496,1395],{"id":1497},"示例-1",[1103,1499,1502],{"className":1500,"code":1501,"language":1108,"meta":1109},[1106],"输入：\n1 2\n114 514\n2024 727\n输出：\n3\n628\n2751\n",[1111,1503,1501],{"__ignoreMap":1109},[1103,1505,1508],{"className":1506,"code":1507,"language":1108,"meta":1109},[1106],"const rl = require(\"readline\").createInterface({ input: process.stdin });\nvar iter = rl[Symbol.asyncIterator]();\nconst readline = async () => (await iter.next()).value;\n\nvoid (async function () {\n  \u002F\u002F 循环读取每一行输入，直到没有更多输入（EOF）\n  while ((line = await readline())) {\n    \u002F\u002F 将一行输入按空格分割成数组（例如\"1 2\"分割为[\"1\", \"2\"]）\n    let tokens = line.split(\" \");\n    \u002F\u002F 将分割后的字符串转为整数\n    let a = parseInt(tokens[0]);\n    let b = parseInt(tokens[1]);\n    \u002F\u002F 输出两数之和\n    console.log(a + b);\n  }\n})();\n",[1111,1509,1507],{"__ignoreMap":1109},[1300,1511,1513],{"id":1512},"_3多组_ab_t-组形式","3.多组_A+B_T 组形式",[1355,1515,1357],{"id":1516},"描述-2",[1091,1518,1519],{},"给定 t 组测试数据。每组数据有两个整数 a 和 b，请你求出 a + b 的值。",[1355,1521,1375],{"id":1522},"输入描述-2",[1091,1524,1525],{},"第一行有一个整数 t，每行有两个整数 a 和 b",[1355,1527,1386],{"id":1528},"输出描述-2",[1091,1530,1531],{},"输出 t 行，每行一个整数，代表 a + b 的值。",[1355,1533,1395],{"id":1534},"示例-2",[1103,1536,1539],{"className":1537,"code":1538,"language":1108,"meta":1109},[1106],"输入：\n3\n1 2\n114 514\n2024 727\n输出：\n3\n628\n2751\n",[1111,1540,1538],{"__ignoreMap":1109},[1103,1542,1545],{"className":1543,"code":1544,"language":1108,"meta":1109},[1106],"const rl = require(\"readline\").createInterface({ input: process.stdin });\nvar iter = rl[Symbol.asyncIterator]();\nconst readline = async () => (await iter.next()).value;\n\nvoid (async function () {\n  \u002F\u002F 第一步：读取第一行，获取测试用例数量T\n  let T = parseInt(await readline());\n\n  \u002F\u002F 第二步：循环T次，处理每组数据\n  for (let i = 0; i \u003C T; i++) {\n    \u002F\u002F 读取一行输入\n    let line = await readline();\n    \u002F\u002F 分割成两个数字\n    let tokens = line.split(\" \");\n    let a = parseInt(tokens[0]);\n    let b = parseInt(tokens[1]);\n    \u002F\u002F 输出结果\n    console.log(a + b);\n  }\n})();\n",[1111,1546,1544],{"__ignoreMap":1109},[1300,1548,1550,1551,1555],{"id":1549},"_4多组ab零尾模式","4.多组",[1552,1553,1554],"em",{},"A+B","零尾模式",[1355,1557,1357],{"id":1558},"描述-3",[1091,1560,1561],{},"给定若干组测试数据，最后一组数据为 0 0，作为输入的结尾。每组数据有两个整数 a 和 b，请你求出 a + b 的值。",[1355,1563,1375],{"id":1564},"输入描述-3",[1091,1566,1567],{},"每行有两个整数 a 和 b，最后一组数据为 0 0，作为输入的结尾。",[1355,1569,1386],{"id":1570},"输出描述-3",[1091,1572,1494],{},[1355,1574,1395],{"id":1575},"示例-3",[1103,1577,1580],{"className":1578,"code":1579,"language":1108,"meta":1109},[1106],"输入：\n1 2\n114 514\n2024 727\n0 0\n输出：\n3\n628\n2751\n",[1111,1581,1579],{"__ignoreMap":1109},[1103,1583,1586],{"className":1584,"code":1585,"language":1108,"meta":1109},[1106],"const rl = require(\"readline\").createInterface({ input: process.stdin });\nvar iter = rl[Symbol.asyncIterator]();\nconst readline = async () => (await iter.next()).value;\n\nvoid (async function () {\n  \u002F\u002F 循环读取每一行输入\n  while ((line = await readline())) {\n    \u002F\u002F 分割并转换为数字\n    let tokens = line.split(\" \");\n    let a = parseInt(tokens[0]);\n    let b = parseInt(tokens[1]);\n\n    \u002F\u002F 关键：判断是否为0 0，是则终止循环\n    if (a === 0 && b === 0) {\n      break; \u002F\u002F 退出循环，不再处理后续输入\n    }\n\n    \u002F\u002F 不是终止条件则输出结果\n    console.log(a + b);\n  }\n})();\n",[1111,1587,1585],{"__ignoreMap":1109},[1300,1589,1591],{"id":1590},"_5单组_一维数组","5.单组_一维数组",[1355,1593,1395],{"id":1594},"示例-4",[1103,1596,1599],{"className":1597,"code":1598,"language":1108,"meta":1109},[1106],"输入：\n3\n1 4 7\n输出：\n12\n",[1111,1600,1598],{"__ignoreMap":1109},[1103,1602,1605],{"className":1603,"code":1604,"language":1108,"meta":1109},[1106],"const rl = require(\"readline\").createInterface({ input: process.stdin });\nvar iter = rl[Symbol.asyncIterator]();\nconst readline = async () => (await iter.next()).value;\n\nvoid (async function () {\n  \u002F\u002F 第一步：读取第一行，获取数字的个数n\n  let n = parseInt(await readline());\n\n  \u002F\u002F 第二步：读取第二行，获取包含n个数字的字符串\n  let line = await readline();\n\n  \u002F\u002F 第三步：对字符串进行处理，转化为数字数组\n  let nums = line\n    .split(\" \")\n    .filter((x) => x)\n    .map(Number); \u002F\u002F 用空格分割，过滤空值\n\n  \u002F\u002F 第四步：计算数组中所有数字的总和\n  let sum = nums.reduce((acc, curr) => acc + curr, 0);\n\n  \u002F\u002F 第五步：输出总和\n  console.log(sum);\n})();\n",[1111,1606,1604],{"__ignoreMap":1109},[1300,1608,1610],{"id":1609},"_6多组_一维数组_t-组形式","6.多组_一维数组_T 组形式",[1355,1612,1395],{"id":1613},"示例-5",[1103,1615,1618],{"className":1616,"code":1617,"language":1108,"meta":1109},[1106],"输入：\n3\n3\n1 4 7\n1\n1000\n2\n1 2\n输出：\n12\n1000\n3\n",[1111,1619,1617],{"__ignoreMap":1109},[1103,1621,1624],{"className":1622,"code":1623,"language":1108,"meta":1109},[1106],"const rl = require(\"readline\").createInterface({ input: process.stdin });\nvar iter = rl[Symbol.asyncIterator]();\nconst readline = async () => (await iter.next()).value;\n\nvoid (async function () {\n  \u002F\u002F 读取测试用例总数T\n  const T = parseInt(await readline());\n\n  \u002F\u002F 循环处理每组数据\n  for (let i = 0; i \u003C T; i++) {\n    \u002F\u002F 读取当前组的元素个数n\n    const n = parseInt(await readline());\n\n    \u002F\u002F 读取当前组的数组元素行\n    const arrayLine = await readline();\n\n    \u002F\u002F 将字符串分割为数字数组\n    const numbers = arrayLine\n      .split(\" \")\n      .filter((x) => x)\n      .map(Number);\n\n    \u002F\u002F 计算数组总和（使用reduce累加，初始值为0）\n    const sum = numbers.reduce((acc, current) => acc + current, 0);\n\n    \u002F\u002F 输出当前组的总和\n    console.log(sum);\n  }\n})();\n",[1111,1625,1623],{"__ignoreMap":1109},[1300,1627,1629],{"id":1628},"_7单组_二维数组","7.单组_二维数组",[1355,1631,1395],{"id":1632},"示例-6",[1103,1634,1637],{"className":1635,"code":1636,"language":1108,"meta":1109},[1106],"输入：\n3 4\n1 2 3 4\n5 6 7 8\n9 10 11 12\n输出：\n78\n",[1111,1638,1636],{"__ignoreMap":1109},[1103,1640,1643],{"className":1641,"code":1642,"language":1108,"meta":1109},[1106],"const rl = require(\"readline\").createInterface({ input: process.stdin });\nvar iter = rl[Symbol.asyncIterator]();\nconst readline = async () => (await iter.next()).value;\n\nvoid (async function () {\n  \u002F\u002F 1. 读取第一行，获取二维数组的行数m和列数n\n  let firstLine = await readline();\n  let [m, n] = firstLine.split(\" \").map(Number); \u002F\u002F m=3, n=4（对应示例输入）\n\n  let totalSum = 0; \u002F\u002F 存储总和\n\n  \u002F\u002F 2. 循环读取m行数据（二维数组的每一行）\n  for (let i = 0; i \u003C m; i++) {\n    let row = await readline(); \u002F\u002F 读取一行数据（如\"1 2 3 4\"）\n    let nums = row\n      .split(\" \")\n      .filter((x) => x)\n      .map(Number); \u002F\u002F 转为数字数组（如[1,2,3,4]）\n\n    \u002F\u002F 3. 累加当前行的所有元素到总和\n    let rowSum = nums.reduce((acc, curr) => acc + curr, 0);\n    totalSum += rowSum;\n  }\n\n  \u002F\u002F 4. 输出二维数组所有元素的总和\n  console.log(totalSum);\n})();\n",[1111,1644,1642],{"__ignoreMap":1109},[1300,1646,1648],{"id":1647},"_8多组_二维数组_t-组形式","8.多组_二维数组_T 组形式",[1355,1650,1395],{"id":1651},"示例-7",[1103,1653,1656],{"className":1654,"code":1655,"language":1108,"meta":1109},[1106],"输入：\n3\n3 4\n1 2 3 4\n5 6 7 8\n9 10 11 12\n1 1\n2024\n3 2\n1 1\n4 5\n1 4\n输出：\n78\n2024\n16\n",[1111,1657,1655],{"__ignoreMap":1109},[1103,1659,1662],{"className":1660,"code":1661,"language":1108,"meta":1109},[1106],"const rl = require(\"readline\").createInterface({ input: process.stdin });\nvar iter = rl[Symbol.asyncIterator]();\nconst readline = async () => (await iter.next()).value;\n\nvoid (async function () {\n  \u002F\u002F 1. 读取测试用例总数T\n  const T = parseInt(await readline());\n\n  \u002F\u002F 2. 循环处理每组二维数组\n  for (let t = 0; t \u003C T; t++) {\n    \u002F\u002F 2.1 读取当前组的行数m和列数n\n    const [m, n] = (await readline())\n      .split(\" \")\n      .filter((x) => x)\n      .map(Number);\n\n    let totalSum = 0; \u002F\u002F 存储当前组的总和\n\n    \u002F\u002F 2.2 读取m行数据（二维数组的每一行）\n    for (let i = 0; i \u003C m; i++) {\n      const row = (await readline())\n        .split(\" \")\n        .filter((x) => x)\n        .map(Number);\n      \u002F\u002F 累加当前行的所有元素\n      const rowSum = row.reduce((acc, curr) => acc + curr, 0);\n      totalSum += rowSum;\n    }\n\n    \u002F\u002F 2.3 输出当前组的总和\n    console.log(totalSum);\n  }\n})();\n",[1111,1663,1661],{"__ignoreMap":1109},[1300,1665,1667],{"id":1666},"_9单组_字符串","9.单组_字符串",[1355,1669,1357],{"id":1670},"描述-4",[1091,1672,1673,1674,1677,1678,1681],{},"给定一个长度为",[1111,1675,1676],{},"n","的字符串",[1111,1679,1680],{},"s",",请你将其倒置，然后输出。",[1355,1683,1375],{"id":1684},"输入描述-4",[1091,1686,1687,1688,1690,1691,1693],{},"第一行有一个整数",[1111,1689,1676],{},"，第二行有一个字符串",[1111,1692,1680],{},"，仅包含小写英文字符。",[1355,1695,1386],{"id":1696},"输出描述-4",[1091,1698,1699,1700,1186],{},"输出一个字符串，代表倒置后的字符串",[1111,1701,1680],{},[1355,1703,1395],{"id":1704},"示例-8",[1103,1706,1709],{"className":1707,"code":1708,"language":1108,"meta":1109},[1106],"输入：\n5\nabcde\n输出：\nedcba\n",[1111,1710,1708],{"__ignoreMap":1109},[1103,1712,1715],{"className":1713,"code":1714,"language":1108,"meta":1109},[1106],"const rl = require(\"readline\").createInterface({ input: process.stdin });\nvar iter = rl[Symbol.asyncIterator]();\nconst readline = async () => (await iter.next()).value;\n\nvoid (async function () {\n  \u002F\u002F 1. 读取第一行：字符串的长度n（本题中可忽略具体值，仅用于匹配输入格式）\n  const n = parseInt(await readline());\n\n  \u002F\u002F 2. 读取第二行：需要反转的字符串\n  const str = await readline();\n\n  \u002F\u002F 3. 反转字符串：\n  \u002F\u002F    - split('') 将字符串转为字符数组（如\"abcde\" → ['a','b','c','d','e']）\n  \u002F\u002F    - reverse() 反转数组（→ ['e','d','c','b','a']）\n  \u002F\u002F    - join('') 将数组转回字符串（→ \"edcba\"）\n  const reversedStr = str.split(\"\").reverse().join(\"\");\n\n  \u002F\u002F 4. 输出反转后的字符串\n  console.log(reversedStr);\n})();\n",[1111,1716,1714],{"__ignoreMap":1109},[1300,1718,1720],{"id":1719},"_10多组_字符串_t-组形式","10.多组_字符串_T 组形式",[1355,1722,1357],{"id":1723},"描述-5",[1091,1725,1726,1727,1730,1731,1677,1733,1681],{},"给定",[1111,1728,1729],{},"t","组询问，每次只给出一个长度为",[1111,1732,1676],{},[1111,1734,1680],{},[1355,1736,1375],{"id":1737},"输入描述-5",[1091,1739,1687,1740,1742,1743,1745,1746,1748,1749,1693],{},[1111,1741,1729],{},"，随后",[1111,1744,1729],{},"组数据。每组的第一行有一个整数",[1111,1747,1676],{},",每组的第二行有一个字符串",[1111,1750,1680],{},[1355,1752,1386],{"id":1753},"输出描述-5",[1091,1755,1756,1757,1759,1760,1186],{},"输出",[1111,1758,1729],{},"行，每行一个字符串，代表倒置后的字符串",[1111,1761,1680],{},[1355,1763,1395],{"id":1764},"示例-9",[1103,1766,1769],{"className":1767,"code":1768,"language":1108,"meta":1109},[1106],"输入：\n3\n5\nabcde\n8\nredocwon\n9\ntfarcenim\n输出：\nedcba\nnowcoder\nminecraft\n",[1111,1770,1768],{"__ignoreMap":1109},[1103,1772,1775],{"className":1773,"code":1774,"language":1108,"meta":1109},[1106],"const rl = require(\"readline\").createInterface({ input: process.stdin });\nvar iter = rl[Symbol.asyncIterator]();\nconst readline = async () => (await iter.next()).value;\n\nvoid (async function () {\n  \u002F\u002F 1. 读取测试用例总数T\n  const T = parseInt(await readline());\n\n  \u002F\u002F 2. 循环处理每组字符串\n  for (let t = 0; t \u003C T; t++) {\n    \u002F\u002F 2.1 读取当前组的字符串长度n（仅用于匹配输入格式，反转逻辑不依赖此值）\n    const n = parseInt(await readline());\n\n    \u002F\u002F 2.2 读取当前组需要反转的字符串\n    const str = await readline();\n\n    \u002F\u002F 2.3 反转字符串：拆分为字符数组 → 反转数组 → 拼接为字符串\n    const reversedStr = str.split(\"\").reverse().join(\"\");\n\n    \u002F\u002F 2.4 输出反转后的字符串\n    console.log(reversedStr);\n  }\n})();\n",[1111,1776,1774],{"__ignoreMap":1109},[1300,1778,1780],{"id":1779},"_11单组_二维字符数组","11.单组_二维字符数组",[1355,1782,1375],{"id":1783},"输入描述-6",[1091,1785,1379,1786,1364,1788,1742,1791,1793,1794,1796],{},[1111,1787,1676],{},[1111,1789,1790],{},"m",[1111,1792,1676],{},"行，每行有",[1111,1795,1790],{},"个字符，仅包含小写英文字符。",[1355,1798,1386],{"id":1799},"输出描述-6",[1091,1801,1802],{},"输出一个二维字符数组。",[1355,1804,1395],{"id":1805},"示例-10",[1103,1807,1810],{"className":1808,"code":1809,"language":1108,"meta":1109},[1106],"输入：\n3 4\nabcd\nefgh\nijkl\n输出：\nlkji\nhgfe\ndcba\n",[1111,1811,1809],{"__ignoreMap":1109},[1103,1813,1816],{"className":1814,"code":1815,"language":1108,"meta":1109},[1106],"const rl = require(\"readline\").createInterface({ input: process.stdin });\nvar iter = rl[Symbol.asyncIterator]();\nconst readline = async () => (await iter.next()).value;\n\nvoid (async function () {\n  \u002F\u002F 1. 读取第一行，获取二维数组的行数m和列数n\n  const [m, n] = (await readline())\n    .split(\" \")\n    .filter((x) => x)\n    .map(Number);\n\n  \u002F\u002F 2. 读取m行字符串，存储到数组中\n  const rows = [];\n  for (let i = 0; i \u003C m; i++) {\n    rows.push(await readline());\n  }\n\n  \u002F\u002F 3. 处理逻辑：\n  \u002F\u002F    a. 先将每行字符串反转（如\"abcd\" → \"dcba\"）\n  \u002F\u002F    b. 再将所有行的顺序反转（如[行1, 行2, 行3] → [行3, 行2, 行1]）\n  const reversedRows = rows\n    .map((row) => row.split(\"\").reverse().join(\"\")) \u002F\u002F 每行字符反转\n    .reverse(); \u002F\u002F 行顺序反转\n\n  \u002F\u002F 4. 逐行输出处理后的结果\n  reversedRows.forEach((row) => console.log(row));\n})();\n",[1111,1817,1815],{"__ignoreMap":1109},[1300,1819,1821],{"id":1820},"_12多组_带空格的字符串_t-组形式","12.多组_带空格的字符串_T 组形式",[1355,1823,1357],{"id":1824},"描述-6",[1091,1826,1726,1827,1829,1830,1832,1833,1835],{},[1111,1828,1729],{},"组询问，每次给出一个长度为",[1111,1831,1676],{},"的带空格的字符串",[1111,1834,1680],{},"，请你去掉空格之后，将其倒置，然后输出。",[1355,1837,1375],{"id":1838},"输入描述-7",[1091,1840,1687,1841,1843,1844,1745,1846,1848,1849,1851],{},[1111,1842,1729],{},"，随后有",[1111,1845,1729],{},[1111,1847,1676],{},"，每组的第二行有一个字符串",[1111,1850,1680],{},"，仅包含小写英文字符和空格，保证字符串首尾都不是空格。",[1355,1853,1386],{"id":1854},"输出描述-7",[1091,1856,1857,1858,1186],{},"输出 t 行，每行一个字符串，代表倒置后的字符串",[1111,1859,1680],{},[1355,1861,1395],{"id":1862},"示例-11",[1103,1864,1867],{"className":1865,"code":1866,"language":1108,"meta":1109},[1106],"输入：\n3\n9\none space\n11\ntwo  spaces\n14\nthree   spaces\n输出：\necapseno\nsecapsowt\nsecapseerht\n",[1111,1868,1866],{"__ignoreMap":1109},[1103,1870,1873],{"className":1871,"code":1872,"language":1108,"meta":1109},[1106],"const rl = require(\"readline\").createInterface({ input: process.stdin });\nvar iter = rl[Symbol.asyncIterator]();\nconst readline = async () => (await iter.next()).value;\n\nvoid (async function () {\n  \u002F\u002F 1. 读取测试用例总数T\n  const T = parseInt(await readline());\n\n  \u002F\u002F 2. 循环处理每组字符串\n  for (let t = 0; t \u003C T; t++) {\n    \u002F\u002F 2.1 读取当前组的字符串总长度n（用于匹配输入格式）\n    const n = parseInt(await readline());\n\n    \u002F\u002F 2.2 读取带空格的字符串\n    const str = await readline();\n\n    \u002F\u002F 2.3 处理逻辑：\n    \u002F\u002F    a. 先将字符串所有字符（包括空格）反转\n    \u002F\u002F    b. 再去除反转后字符串中的所有空格\n    const processed = str\n      .split(\"\") \u002F\u002F 拆分为字符数组（含空格）\n      .reverse() \u002F\u002F 反转所有字符（包括空格）\n      .join(\"\") \u002F\u002F 拼接回字符串\n      .replace(\u002F\\s+\u002Fg, \"\"); \u002F\u002F 去除所有空格（\\s+匹配任意空白字符）\n\n    \u002F\u002F 2.4 输出处理结果\n    console.log(processed);\n  }\n})();\n",[1111,1874,1872],{"__ignoreMap":1109},[1300,1876,1878],{"id":1877},"_13单组_保留小数位数","13.单组_保留小数位数",[1355,1880,1357],{"id":1881},"描述-7",[1091,1883,1884],{},"给定一个小数 n ，请你保留 3 位小数后输出。",[1091,1886,1887],{},"如果原来的小数位数少于 3 ，需要补充 0 。",[1091,1889,1890],{},"如果原来的小数位数多于 3 ，需要四舍五入到 3 位。",[1355,1892,1386],{"id":1893},"输出描述-8",[1091,1895,1896],{},"输出一个小数，保留 3 位。",[1355,1898,1395],{"id":1899},"示例-12",[1103,1901,1904],{"className":1902,"code":1903,"language":1108,"meta":1109},[1106],"输入：\n1.23\n输出：\n1.230\n\n输入：\n114.514\n输出：\n114.514\n\n输入：\n123\n输出：\n123.000\n",[1111,1905,1903],{"__ignoreMap":1109},[1103,1907,1910],{"className":1908,"code":1909,"language":1108,"meta":1109},[1106],"const rl = require(\"readline\").createInterface({ input: process.stdin });\nvar iter = rl[Symbol.asyncIterator]();\nconst readline = async () => (await iter.next()).value;\n\nvoid (async function () {\n  \u002F\u002F 1. 读取输入的小数（单组输入，只需读一次）\n  const numStr = await readline();\n\n  \u002F\u002F 2. 将字符串转换为浮点数\n  const num = parseFloat(numStr);\n\n  \u002F\u002F 3. 保留3位小数：toFixed(3)会自动补零，确保结果是3位小数\n  const result = num.toFixed(3);\n\n  \u002F\u002F 4. 输出格式化后的结果\n  console.log(result);\n})();\n",[1111,1911,1909],{"__ignoreMap":1109},[1300,1913,1915],{"id":1914},"_14单组_补充前导零","14.单组_补充前导零",[1355,1917,1357],{"id":1918},"描述-8",[1091,1920,1921],{},"给定一个正整数 n ，请你保留 9 个数位，然后输出。",[1091,1923,1924],{},"如果数位少于 9 个，那么需要补充前导零。",[1355,1926,1386],{"id":1927},"输出描述-9",[1091,1929,1896],{},[1355,1931,1395],{"id":1932},"示例-13",[1103,1934,1937],{"className":1935,"code":1936,"language":1108,"meta":1109},[1106],"输入：\n123\n输出：\n000000123\n\n输入：\n123456789\n输出：\n123456789\n",[1111,1938,1936],{"__ignoreMap":1109},[1103,1940,1943],{"className":1941,"code":1942,"language":1108,"meta":1109},[1106],"const rl = require(\"readline\").createInterface({ input: process.stdin });\nvar iter = rl[Symbol.asyncIterator]();\nconst readline = async () => (await iter.next()).value;\n\nvoid (async function () {\n  \u002F\u002F 1. 读取输入的数字（单组输入，读取一行即可）\n  const numStr = await readline();\n\n  \u002F\u002F 2. 补充前导零至9位：\n  \u002F\u002F    - padStart(9, '0') 表示如果字符串长度不足9位，在前面补'0'直到长度为9\n  const result = numStr.padStart(9, \"0\");\n\n  \u002F\u002F 3. 输出处理后的结果\n  console.log(result);\n})();\n",[1111,1944,1942],{"__ignoreMap":1109},[1946,1947,1948],"h3",{"id":1948},"常用方法",[1128,1950,1951,1957,1963,1969,1975,1981,1987,1992,2002],{},[1131,1952,1953,1956],{},[1111,1954,1955],{},"parseInt()","：将字符串转化为整数。",[1131,1958,1959,1962],{},[1111,1960,1961],{},"parseFloat()","：将字符串转化为浮点数。",[1131,1964,1965,1968],{},[1111,1966,1967],{},"split()","：将字符串按指定分隔符分割成数组。",[1131,1970,1971,1974],{},[1111,1972,1973],{},"reverse()","：反转数组。",[1131,1976,1977,1980],{},[1111,1978,1979],{},"join()","：将数组元素按指定分隔符拼接成字符串。",[1131,1982,1983,1986],{},[1111,1984,1985],{},"padStart()","：在字符串前面补充指定字符，直到字符串长度达到指定长度。",[1131,1988,1989,1991],{},[1111,1990,1443],{},"：要注意 await readline()获取的是一段字符串，后面我们还要自己将它分割或者转化为其他数据类型。",[1131,1993,1994,1997,1998,1242],{},[1111,1995,1996],{},"let tokens = line.split(' ')","：这段代码作用是，将一行输入按空格分割成数组（例如\"1 2\"分割为",[1999,2000,2001],"span",{},"\"1\", \"2\"",[1131,2003,2004,2007],{},[1111,2005,2006],{},"let a = parseInt(tokens[0])","：这段代码的作用是，将分割的字符转化为数字。",[1091,2009,2010,2011,1364,2013,2016],{},"再配合",[1111,2012,1416],{},[1111,2014,2015],{},"for","语句差不多可以应对各种题型了",{"title":1109,"searchDepth":2018,"depth":2018,"links":2019},4,[2020,2030],{"id":1097,"depth":2021,"text":1098,"children":2022},2,[2023,2025,2026,2027,2028,2029],{"id":1119,"depth":2024,"text":1120},5,{"id":1160,"depth":2024,"text":1161},{"id":1201,"depth":2024,"text":1202},{"id":1252,"depth":2024,"text":1253},{"id":1302,"depth":2018,"text":1303},{"id":1317,"depth":2018,"text":1317},{"id":1348,"depth":2021,"text":1349,"children":2031},[2032,2033,2034,2035,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047],{"id":1352,"depth":2018,"text":1353},{"id":1475,"depth":2018,"text":1476},{"id":1512,"depth":2018,"text":1513},{"id":1549,"depth":2018,"text":2036},"4.多组A+B零尾模式",{"id":1590,"depth":2018,"text":1591},{"id":1609,"depth":2018,"text":1610},{"id":1628,"depth":2018,"text":1629},{"id":1647,"depth":2018,"text":1648},{"id":1666,"depth":2018,"text":1667},{"id":1719,"depth":2018,"text":1720},{"id":1779,"depth":2018,"text":1780},{"id":1820,"depth":2018,"text":1821},{"id":1877,"depth":2018,"text":1878},{"id":1914,"depth":2018,"text":1915},{"id":1948,"depth":2048,"text":1948},3,"md",true,{"uuid":2052,"slots":2053},"bf9a88a0-e1a3-11f0-bdc3-f7a53b82fbd3",{},{"title":1085,"description":1093},"posts\u002F2025\u002F2025-12-25-面试算法ACM模式构建构建输入输出模板",[40,181,161,182],"qzDyCykRYjGVpmMJCDiyebJympavvFtWlVD1yNZJHqI",1790443287315]