当前位置: 首页 > article >正文

L1-064 估值一亿的ai核心代码 (分数20)字符串处理

•无论用户说什么首先把对方说的话在一行中原样打印出来•消除原文中多余空格把相邻单词间的多个空格换成 1 个空格把行首尾的空格全部删掉把标点符号前面的空格删掉•把原文中所有大写英文字母变成小写除了 I•把原文中所有独立的 can you、could you 对应地换成 I can、I could—— 这里“独立”是指被空格或标点符号分隔开的单词•把原文中所有独立的 I 和 me 换成 you•把原文中所有的问号 ? 换成惊叹号 !•在一行中输出替换后的句子作为 AI 的回答。现在请你模拟手搓一个能满足这些功能代码来模拟ai。我来模拟ai真的假的输入格式输入首先在第一行给出不超过 10 的正整数 N随后 N 行每行给出一句不超过 1000 个字符的、以回车结尾的用户的对话对话为非空字符串仅包括字母、数字、空格、可见的半角标点符号。输出格式按题面要求输出每个 AI 的回答前要加上 AI: 和一个空格。解题思路算法一朴素做法我先要介绍一种处理字符串中单词之间多个空格的方法我们可以像之前L1-049那样用一个last来记录上一个字符是啥状态 \比如bool last_is_space true; 再利用isalnumchar函数完成对输入字符串的整理记整理后的字符串为clean由于这里需要先输出原句所以肯定需要使用getline不能用cin自动跳过不可见字符遍历字符串的过程中我们需要分三种情况讨论1. 单词包含数字和字母 2. 空格 3. 标点符号 ;●如果该字符是 单词 就直接放进clean字符串●如果是空格检查last_is_space如果是false就放进clean并改变状态●如果是标点符号要检查last_is_space和clean.size() 因为要去掉标点符号前的空格但是标点符号可能出现在字符串第一个而刚开始last_is_space 的状态就是true所以还要检查clean.size()任何访问容器元素的操作都要判断是否为空或者可以检查clean.size() clean.back()如果有空格就pop.back()后者更符直觉前者符合前面的代码设计注意常见的容器 如vector 和 string 都有 front和 back 之前我也不知道这个o(╥﹏╥)o然后把整个字符串clean之后就是对单词大小写为了方便可以在clean的过程中转换为小写特定词的替换问号进行处理。ac代码✅️#includeiostream#includestring#includevector#includecctypeusing namespace std;bool isSymbol(char c){return !isalnum(c);}int main(){int n;cinn;cin.ignore();while(n--){string s;getline(cin,s);coutsendl;string clean;bool lastIsSpace true;for(int i 0 ; i s.size() ; i){char c s[i];if(c ){if(!lastIsSpace){clean ;lastIsSpace true;}}else if( isSymbol(c) ){//这里提个问题为啥 “只” 要检查 “末尾” 是否是空格 前面不可能有空格吗if(lastIsSpace clean.size()) clean.pop_back();if(c ?) c !;clean c;lastIsSpace false;}else{if(c ! I) c tolower(c);clean c;lastIsSpace false;}}if(clean.size() 0 clean.back() ) clean.pop_back();vectorstring tokens;string temp ;for(int i 0 ; i clean.size() ; i){if(isalnum(clean[i])) temp clean[i];else{if(temp ! ){//这里的作用是把每个单词放进tokens便于单词替换//遇到空格或者标点符号说明放完一个单词了//接下来要清空temp便于下一个单词的放入tokens.push_back(temp);temp ;}//char要转换为string才能放入string sym(1,clean[i]);tokens.push_back(sym);}}//clean的行末可能有空格可能没有如果没有会有一个temp没被加//需要在循坏结束后特判一下if(temp ! ) tokens.push_back(temp);for(int i 0 ; i tokens.size() ; i){string now tokens[i];if(now can i 2 tokens.size() tokens[i1] tokens[i2] you){tokens[i] I;tokens[i2] can;i2;}else if(now could i 2 tokens.size() tokens[i1] tokens[i2] you){tokens[i] I;tokens[i2] could;i 2;}else if(now I) tokens[i] you;else if(now me) tokens[i] you;}coutAI: ;for(const string t : tokens) coutt;coutendl;}return 0;}还没完还有一种牛逼轰轰的写法(后续我发现并没有)用到了s.find_first_not_of( ) 和 s.find_last_not_of( ) 分别可以找到字符串第一个不为空格的下标和最后一个不为空格的下标完美地控制了主体部分的范围。然后遍历主体如果s[i] 和 s[i1] 都是空格就可以continue保证只加入了一个空格其实这里可以在clean的过程中 改变大小写和问号换感叹号等等只需要考虑单词替换的问题。这里用到了正则表达式 。这里只介绍regex的replace函数单词替换#includeiostream#includeregexusing namespace std;int main(){string s I love you,can you love me?;s regex_replace(s , regex(\\bcan you\\b), I can);coutsendl;return 0;}clean过程s regex_replace(s, regex(^ | $), ); // 删去首尾空格s regex_replace(s, regex( ), ); // 多空格压成单空格s regex_replace(s, regex( ([^a-zA-Z0-9 ])), $1); // 删去标点前的空格 (匹配非字母数字空格)解释说明\b表示边界也可以说是与其他词的边界在上述演示中\b严格限制了替换的内容它与find不同的是如果字符串中有oldcan youschool,find会找到can you并替换而regex_replace找不到它只能找到独立的can you。regex(^ | $)在该函数中起到了搜索的作用 ^表示从开头开始匹配, 接下来的 “ ” 表示匹配开头的多个空格|表示或 即左右两种匹配搜索方式都可以 ,$$表示 结尾 , “ $”表示匹配结尾前面的多个空格实现了去除字符串开头或结尾的多余空格regex( ([^a-zA-Z0-9 ]))表示匹配([^a-zA-Z0-9 ])前面的多个空格[]表示指定一个字符集其内容为^a-zA-Z0-9 这里有个空格请注意)^为反的意思a-zA-Z0-9 就是字符串中不是字母也不是数字还不是空格的字符在题目限制下就是标点符号逗号感叹号等等将标点符号和前面的空格全部换成标点符号$1表示[]匹配到的内容这里就是标点符号。ac代码✅️✅️#include iostream#include string#include regex#include cctypeusing namespace std;void solve(){string s;getline(cin, s);cout s endl; // 第一步原样输出// 1. 朴素版大小写转换与问号替换 (这一步必须手动最快最稳)for (int i 0; i s.size(); i){if (s[i] A s[i] Z s[i] ! I){s[i] tolower(s[i]);}else if (s[i] ?){s[i] !;}}// 2. 正则版清理空格 (顺序千万不能乱)s regex_replace(s, regex(^ | $), ); // 删去首尾空格s regex_replace(s, regex( ), ); // 多空格压成单空格s regex_replace(s, regex( ([^a-zA-Z0-9 ])), $1); // 删去标点前的空格 (匹配非字母数字空格)// 3. 正则版单词替换 (利用大写 A 作为绝妙占位符)s regex_replace(s, regex(\\bcan you\\b), A can);s regex_replace(s, regex(\\bcould you\\b), A could);s regex_replace(s, regex(\\bI\\b), you);s regex_replace(s, regex(\\bme\\b), you);s regex_replace(s, regex(\\bA\\b), I); // 最后把 A 变回 Icout AI: s endl;}int main(){int n;if (cin n){cin.ignore();while (n--){solve();}}return 0;}

相关文章:

L1-064 估值一亿的ai核心代码 (分数20)字符串处理

•无论用户说什么,首先把对方说的话在一行中原样打印出来;•消除原文中多余空格:把相邻单词间的多个空格换成 1 个空格,把行首尾的空格全部删掉,把标点符号前面的空格删掉; •把原文中所有大写英文字母变成…...

Monaco-Editor插件使用小坑

无法通过鼠标进行选中文本<div id"monacoEditor" class"monacoEditor"></div>外层添加了splinter拖拽组件&#xff0c;导致mousemove事件被拦截&#xff0c;给monaco-editor添加css&#xff1a;pointer-events&#xff1a;auto.monacoEditor .…...

硬件解放:开源工具突破设备限制的深度探索指南

硬件解放&#xff1a;开源工具突破设备限制的深度探索指南 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 当你的设备被厂商贴上"过时"标签&#x…...

实战应用:基于快马平台从零到一构建功能完备的openclaw101风格项目平台

今天想和大家分享一个实战经验&#xff1a;如何从零开始构建一个功能完备的开源项目托管平台。类似openclaw101这样的网站&#xff0c;其实用现代开发工具和云平台可以快速实现。下面我就把整个搭建过程拆解成几个关键环节&#xff0c;希望能给想做类似项目的朋友一些参考。 项…...

效率提升:基于快马AI生成vmware虚拟机自动化部署脚本,告别手动配置

在开发过程中&#xff0c;虚拟机环境的搭建往往是耗时又容易出错的环节。特别是当需要频繁创建不同配置的虚拟机时&#xff0c;手动操作不仅效率低下&#xff0c;还容易遗漏关键步骤。最近尝试用自动化脚本解决这个问题&#xff0c;效果出乎意料地好&#xff0c;分享下具体实现…...

Qwen3-14B日志分析教程:ELK栈收集推理请求、响应、错误全链路追踪

Qwen3-14B日志分析教程&#xff1a;ELK栈收集推理请求、响应、错误全链路追踪 1. 为什么需要日志分析 当你在私有化部署Qwen3-14B模型时&#xff0c;可能会遇到各种问题&#xff1a;为什么推理速度突然变慢了&#xff1f;为什么API返回了错误响应&#xff1f;哪些请求消耗了最…...

BG3 Mod Manager:智能模组管理工具让博德之门3模组体验升级

BG3 Mod Manager&#xff1a;智能模组管理工具让博德之门3模组体验升级 【免费下载链接】BG3ModManager A mod manager for Baldurs Gate 3. This is the only official source! 项目地址: https://gitcode.com/gh_mirrors/bg/BG3ModManager 博德之门3作为一款备受欢迎的…...

Fiji图像处理软件更新故障排查指南:当科学工具遇到“升级烦恼“

Fiji图像处理软件更新故障排查指南&#xff1a;当科学工具遇到"升级烦恼" 【免费下载链接】fiji A "batteries-included" distribution of ImageJ :battery: 项目地址: https://gitcode.com/gh_mirrors/fi/fiji Fiji作为生物图像分析领域的瑞士军刀…...

宁德时代2026春招开启:6000+offer,这一轮机会在扩大

很多人现在还在犹豫一个问题&#xff1a;新能源是不是已经开始降温了&#xff1f;现在再投&#xff0c;还能不能拿到好的岗位&#xff1f;但从今年的招聘情况来看&#xff0c;趋势其实很清晰&#xff1a;岗位没有减少&#xff0c;而是在结构性增加。尤其是动力电池、储能、电池…...

Phi-3-mini-4k-instruct新手入门:Ollama部署详解,从安装到第一个对话

Phi-3-mini-4k-instruct新手入门&#xff1a;Ollama部署详解&#xff0c;从安装到第一个对话 1. 认识Phi-3-mini-4k-instruct&#xff1a;轻量级AI助手 Phi-3-mini-4k-instruct是一个仅有38亿参数的轻量级语言模型&#xff0c;由微软团队开发。虽然体积小巧&#xff0c;但它在…...

如何彻底解决消息撤回难题?RevokeMsgPatcher带来的革新方案

如何彻底解决消息撤回难题&#xff1f;RevokeMsgPatcher带来的革新方案 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁&#xff08;我已经看到了&#xff0c;撤回也没用了&#xff09; 项目地址: https://gitco…...

S2-Pro模型推理服务高可用部署:基于Docker与Kubernetes的架构

S2-Pro模型推理服务高可用部署&#xff1a;基于Docker与Kubernetes的架构 1. 为什么需要高可用部署 在实际生产环境中&#xff0c;AI模型推理服务的稳定性直接影响业务连续性。想象一下&#xff0c;当你的电商平台正在举行大促活动&#xff0c;AI推荐系统突然宕机&#xff0c…...

小白也能玩转AI翻译:translategemma图文翻译快速入门指南

小白也能玩转AI翻译&#xff1a;translategemma图文翻译快速入门指南 1. 认识translategemma&#xff1a;你的私人翻译助手 translategemma-12b-it是Google基于Gemma 3模型开发的开源翻译模型&#xff0c;它能同时处理文本和图片中的文字翻译。想象一下&#xff0c;你正在国外…...

Hunyuan-MT-7B多语种能力:Pixel Language Portal在联合国六种官方语言互译中的表现

Hunyuan-MT-7B多语种能力&#xff1a;Pixel Language Portal在联合国六种官方语言互译中的表现 1. 引言&#xff1a;当像素冒险遇见多语言翻译 在全球化交流日益频繁的今天&#xff0c;语言障碍仍然是横亘在不同文化之间的无形壁垒。传统翻译工具往往给人冰冷、机械的使用体验…...

OmenSuperHub终极指南:简单三步掌控暗影精灵硬件性能

OmenSuperHub终极指南&#xff1a;简单三步掌控暗影精灵硬件性能 【免费下载链接】OmenSuperHub 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否厌倦了官方Omen Gaming Hub的臃肿体积和烦人广告&#xff1f;是否希望获得纯净的硬件控制体验&#xf…...

5步搞定Qwen3-Embedding-4B向量服务:SGlang部署亲测有效

5步搞定Qwen3-Embedding-4B向量服务&#xff1a;SGlang部署亲测有效 1. Qwen3-Embedding-4B模型简介 1.1 模型核心能力 Qwen3-Embedding-4B是通义实验室推出的新一代文本嵌入模型&#xff0c;专为高效语义编码设计。作为Qwen3系列的一员&#xff0c;它在保持中等参数规模&am…...

屏幕取色与设计辅助工具 ColorWanted:提升设计师与开发者工作效率的专业解决方案

屏幕取色与设计辅助工具 ColorWanted&#xff1a;提升设计师与开发者工作效率的专业解决方案 【免费下载链接】ColorWanted Screen color picker for Windows (Windows 上的屏幕取色器) 项目地址: https://gitcode.com/gh_mirrors/co/ColorWanted 你是否曾遇到这样的工作…...

马年市场快报分析:欧美组合式一氧化碳及可燃气体报警器指南

马年市场快报分析&#xff1a;欧美组合式一氧化碳及可燃气体报警器指南根据您提供的快报内容&#xff0c;我将从专业角度逐步分析欧美组合式一氧化碳&#xff08;CO&#xff09;及可燃气体报警器的关键信息&#xff0c;包括安全标准、风险因素、探测器区别、安装建议以及相关产…...

云容笔谈效果对比评测: vs Stable Diffusion 3.5东方人像生成质量深度分析

云容笔谈效果对比评测&#xff1a; vs Stable Diffusion 3.5东方人像生成质量深度分析 1. 评测背景与目的 东方人像生成一直是AI图像生成领域的特殊挑战。西方模型在生成东方人脸时常常出现面部结构不自然、表情僵硬、缺乏东方神韵等问题。本次评测将深入对比「云容笔谈」和S…...

解锁3大智能功能:League-Toolkit让普通玩家也能玩转专业级游戏分析

解锁3大智能功能&#xff1a;League-Toolkit让普通玩家也能玩转专业级游戏分析 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power &#x1f680;. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 在英雄联盟的召…...

ubuntu秘钥生成PKCS1 格式秘钥

openssl genrsa -out key 2048 openssl rsa -in key -out key2 -traditional...

Odoo 19成本核算避坑指南:标准成本法下差异分析、委外加工汇率风险与WIP分录丢失问题

Odoo 19成本核算实战避坑指南&#xff1a;标准成本差异、委外加工与WIP分录的深度解决方案 在制造业数字化转型浪潮中&#xff0c;Odoo 19作为开源ERP的领军者&#xff0c;其制造与会计模块的深度集成能力备受企业青睐。然而&#xff0c;当我们真正将系统投入生产环境时&#x…...

AI Token Platform - AI Token 中转计费平台

AI Token Platform - AI Token 中转计费平台 AI Token Platform 是一款企业级 AI Token 中转与计费平台&#xff0c;深度融合 多模型 AI 网关、Kill Bill 计费引擎 与 企业级会员管理 三大核心能力。平台以"统一 API 接入 灵活计费策略 企业级会员体系"为核心理念…...

PyTorch 2.8镜像实战落地:教育机构AI教学平台(图文+视频+LLM)集成方案

PyTorch 2.8镜像实战落地&#xff1a;教育机构AI教学平台&#xff08;图文视频LLM&#xff09;集成方案 1. 教育AI平台的技术挑战与解决方案 现代教育机构在构建AI教学平台时面临三大技术难题&#xff1a;多模态内容生成、算力资源管理和教学场景适配。PyTorch 2.8深度学习镜…...

从模电理论到商用落地,应届生必做的无线充项目,H 桥 / LC 谐振 + QI 协议全栈详解

很多初学嵌入式的同学、正在准备秋招的电子信息类应届生&#xff0c;都会遇到两个核心困境&#xff1a;一是模电学了 H 桥、LC 谐振&#xff0c;只会背公式做题&#xff0c;根本不知道怎么在真实产品里落地&#xff1b;二是学完单片机只会点灯&#xff0c;写的都是流水账代码&a…...

【米家IoT开发】巧用Charles抓包,高效定位与调试网络接口

1. 为什么Charles是米家IoT开发的调试神器 当你开发米家扩展程序时&#xff0c;最头疼的莫过于接口返回异常数据&#xff0c;或者请求莫名其妙失败。这时候如果只能靠猜问题出在哪里&#xff0c;那简直就是在黑暗中摸索。我刚开始做米家IoT开发时&#xff0c;就经常被这种问题困…...

猫抓插件:浏览器资源嗅探的革命性解决方案

猫抓插件&#xff1a;浏览器资源嗅探的革命性解决方案 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你是否曾在浏览网页时&#xff0c;看到心仪的…...

提升效率:用快马AI一键生成windows18-hd19风格的CSS组件库

提升效率&#xff1a;用快马AI一键生成windows18-hd19风格的CSS组件库 最近在做一个需要windows18-hd19设计风格的项目&#xff0c;这种风格的界面元素特别多&#xff0c;手动编写样式简直让人头大。光是调色板、阴影效果这些基础样式就要折腾半天&#xff0c;更别说那些复杂的…...

S2-Pro模型部署在CentOS7生产环境:系统调优与安全加固

S2-Pro模型部署在CentOS7生产环境&#xff1a;系统调优与安全加固 1. 引言 在AI模型生产环境部署中&#xff0c;系统调优和安全加固往往是被忽视却至关重要的环节。很多团队花费大量精力优化模型性能&#xff0c;却因为基础环境配置不当导致服务不稳定或安全漏洞。本文将手把…...

HunyuanVideo-Foley快速入门:VSCode远程开发与模型调试指南

HunyuanVideo-Foley快速入门&#xff1a;VSCode远程开发与模型调试指南 1. 前言&#xff1a;为什么选择VSCode远程开发&#xff1f; 如果你正在使用HunyuanVideo-Foley这类音效生成模型&#xff0c;可能会遇到这样的困扰&#xff1a;本地机器性能不足&#xff0c;而云服务器虽…...