PTA估值一亿的AI核心代码

估值一亿的AI核心代码 PTA 估值一亿的AI核心代码 PTA题目输入格式:输出格式:输入样例输出样例:分析解题思路:答案 题目 以上图片来自新浪微博。 本题要求你实现一个稍微更值钱一点的 AI 英文问答程序,规则是: 无论用户说什么,首先把对方说的话在一行中原样打印出来; 消除原文中多余空格:把相邻单词间的多个空格换成 1 个空格,把行首尾的空格全部删掉,把标点符号前面的空格删掉; 把原文中所有大写英文字母变成小写,除了 I; 把原文中所有独立的 can you、could you 对应地换成 I can、I could —— 这 阅读详情

作者 陈越

单位 浙江大学

AI.jpg

以上图片来自新浪微博。

本题要求你实现一个稍微更值钱一点的 AI 英文问答程序,规则是:

  • 无论用户说什么,首先把对方说的话在一行中原样打印出来;
  • 消除原文中多余空格:把相邻单词间的多个空格换成 1 个空格,把行首尾的空格全部删掉,把标点符号前面的空格删掉;
  • 把原文中所有大写英文字母变成小写,除了 I;
  • 把原文中所有独立的 can you、could you 对应地换成 I can、I could—— 这里“独立”是指被空格或标点符号分隔开的单词;
  • 把原文中所有独立的 I 和 me 换成 you;
  • 把原文中所有的问号 ? 换成惊叹号 !;
  • 在一行中输出替换后的句子作为 AI 的回答。

输入格式:

输入首先在第一行给出不超过 10 的正整数 N,随后 N 行,每行给出一句不超过 1000 个字符的、以回车结尾的用户的对话,对话为非空字符串,仅包括字母、数字、空格、可见的半角标点符号。

输出格式:

按题面要求输出,每个 AI 的回答前要加上 AI: 和一个空格。

输入样例:

6
Hello ?
 Good to chat   with you
can   you speak Chinese?
Really?
Could you show me 5
What Is this prime? I,don 't know

输出样例:

Hello ?
AI: hello!
 Good to chat   with you
AI: good to chat with you
can   you speak Chinese?
AI: I can speak chinese!
Really?
AI: really!
Could you show me 5
AI: I could show you 5
What Is this prime? I,don 't know
AI: what Is this prime! you,don't know

字符串模拟, 区间修改版本。

前置知识:

isalnum(char):检查char是否为字母或数字,是返回true。

s.replace(x ,len ,str):将s从第x个开始的len个字母替换为str。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define endl "\n"

string s;

void gx(string x,string y){//将x替换为y 
	for(ll i = 0 ; ; i ++){
		i=s.find(x,i);
		if(i == -1)break;
		if( !isalnum(s[i-1]) && !isalnum(s[i+x.size()]) )
			s.replace(i ,x.size() ,y);
	}
}

void solve(){
	getline(cin,s);
	cout << s << endl;
	s=" " + s + " ";//为首位加空格,方便后面操作 
	for(ll i = 0 ; i < s.size() ; i ++){
		if(s[i] >= 'A' && s[i] <= 'Z' && s[i] != 'I')s[i] += 32;//大写转小写 
		if(s[i] == ' '){
			while(s[i+1] == ' ')s.erase(s.begin()+i+1);//删去连续空格 
			if(!isalnum(s[i+1]))s.erase(s.begin()+i);//删去符号前的空格 
		}
		if(s[i] == '?')s[i]='!';//转换符号 
	}
	gx("can you","# can");//#为了防止下面的I换了不该换的 
	gx("could you","# could");
	gx("I","you"),gx("me","you");
	gx("# can","I can"),gx("# could","I could");
	if(s[s.size()-1] == ' ')s.erase(s.end()-1);
	if(s[0] == ' ')s.erase(s.begin());
	s="AI: "+s;
	cout << s << endl;
	return;
}

int main(){
	ll t=1;cin >> t;
	cin.get();
	while(t--)solve();
	return 0;
}

字符流操作,输出判断版本。

前置知识:

stringstream str(s):将s以空格分隔,按顺序放入str中。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define endl "\n"

vector<string>v;

void solve(){
	string s;
	v.clear();
	getline(cin,s);
	cout << s << endl << "AI:";
	for(ll i = 0 ; i < s.size() ; i ++){
		if(isalnum(s[i])){
			if(s[i] != 'I')s[i]=tolower(s[i]);
		}else s.insert(i," "),i++;
		if(s[i] == '?')s[i]='!';
	}
	stringstream str(s);
	while(str >> s)v.push_back(s);
	if(!isalnum(v[0][0]) )cout << " ";
	for(ll i = 0 ; i < v.size() ; i ++){
		if(!isalnum(v[i][0]) )cout << v[i];
		else if( (v[i] == "can" || v[i] == "could") && v[i+1] == "you")cout << " I " << v[i],i++;
		else if(v[i] == "I" || v[i] == "me")cout << " you";
		else cout << " " << v[i];
	}
	cout << endl;
	return;
}

int main(){
	ll t=1;cin >> t;
	cin.get();
	while(t--)solve();
	return 0;
}

【PTA】L1-064 估值一亿的AI核心代码(详C++)_估值一亿的ai核心代码pta 删除从pos开始的n个字符,比如erase(0,1)就是删除第一个字符删除position处的一个字符(position是个string类型的迭代器)删除从first到last之间的字符(first和last都是迭代器)//第(1)种方法//第(2)种方法//第(3)种方法return 0; 阅读详情

相关推荐

PTA 估值一亿的AI核心代码 java

本题要求你实现一个稍微更值钱一点的 AI 英文问答程序,规则是: 无论用户说什么,首先把对方说的话在一行中原样打印出来; 消除原文中多余空格:把相邻单词间的多个空格换成 1 个空格,把行首尾的空格全部删掉,把标点符号前面的空格删掉; 把原文中所有大写英文字母变成小写,除了 I; 把原文中所有独立的 can you、could you 对应地换成 I can、I could——...

Samil_Hy的博客 567

7-8 估值一亿的AI核心代码 (20 分) 代码有解析

7-8 估值一亿的AI核心代码 (20 分) 代码有解析

weixin_52608621的博客 1784

【PTA】L1-064 估值一亿的AI核心代码(详C++)

【PTA】L1-064 估值一亿的AI核心代码(详C++)

嵌入式技术开发 5600

PTA 估值一亿的AI核心代码

题目太长,这里就不再描述了qwq,呸,还是懒 题目链接:L1-064 估值一亿的AI核心代码 思路就是按空格分割字符串,然后再进行题目中要求的操作即可。 若用文中的stringstream流的操作,巧妙的避开了删除空格的操作。 重要的函数 isalnum 若非字母和数字,则返回0; #include<bits/stdc++.h> using namespace std; int mai...

蓝的博客 1188

伺服电机入门01

编码器输出 旋转信号 , 接收端: 使用ADC 捕捉旋转信号 ,转成数字信号,驱动器得到数字处理, 因为信号量是模拟信号, mcu mpu 等芯片通常内部处理是数字,通过adc 得到数字cpu 才能识别 传输过来的pos 等信息。IPM 芯片示例, IRAM256A 这个芯片已经停产,有换新的,,下面示例来自stmbl 高功率方案,4 步进电机 有全步控制,半步控制 ,微步控制,FOC控制,步进电机也是可以做伺服系统的。以下面几种信号是可以细分,也就是通过细分增加编码器的分辨率,

qq_25160559的博客 969

【AAOS】【源码分析】用户管理(五)-- MUMD介绍

MUMD(多用户多屏显示)是Android Automotive OS为车载多乘员场景设计的功能,支持不同座位用户独立操作各自屏幕。

码农的历程 1510

转载 PTA 题目 L1-064 估值一亿的AI核心代码 (20分)

PTA 题目 L1-064估值一亿的AI核心代码(20分) 原题描述见官网题目 原作者的代码没有贴注释,没有学过正则表达式的可能看起来比较吃力,可以找教程学习下正则表达式,下图贴出的代码加了注释我就不再重复解释了,这种解法是比较快的 网上另外的解法其实其本质也还是字符匹配,实现过程也是比较复杂 #include <bits/stdc++.h> #include ...

blake321的博客 979

SDM量化噪声等效到PLL输出的传递函数推导

在历年文章或书本中少见SDM量化噪声等效到PLL输出的传递函数推导。需了解SDM量化噪声的本质,配合欧拉方程简化,并将Z域转化成S域。最终结合断环处等效到PLL输出的传递函数,方可完成。

u010486560的博客 1406

PTA 估值一亿的AI核心代码 (STL:各种string)

L1-064 估值一亿的AI核心代码 (20 分) 分析: 问题极为复杂就划分为7个小问题,分别进行求解操作,过程中用到了string头文件中的erase,replace,find,rfind等多个函数,STL的使用可以较好简化代码。 代码: #include <bits/stdc++.h> using namespace std; int main() { int n; ...

圣诞老头的博客 2872

Pixel 6 Pro升级Android 13变砖急救指南:Fastboot全分区修复实战

本文提供Pixel 6 Pro升级Android 13变砖后的Fastboot全分区修复实战指南,详细解析变砖原因、必备工具准备、Fastboot模式解锁、全分区擦除操作及手动刷入官方ROM的完整流程,帮助用户高效解决设备变砖问题。

weixin_28693447的博客 485

SAP面试全过程(已拿offer)

周五打电话给我说过了SAP第一轮面试,第二轮要在下周四北京,这几天终于体会到了什么叫做重压下的感觉,越复习越虚,看别人的面经都感觉卧槽这问题也巨难了吧...连去北京可以见妹子这种事情都感觉一点心情都没有。面前准备固然是要有的,但关键是平时就要有料,多想想自己做的项目。当作一个给自己的提醒吧!

cloudray8580的专栏 4万+

PTA L1-064 估值一亿的AI核心代码(详解)

前言:内容包括:题目,代码实现,大致思路,代码解读

weixin_73142957的博客 5023

Ubuntu系统全盘备份——TimeShift的安装与使用

所以如果有那天你不小心作了个大死,并且幸运到还能打开GNOME桌面和Timeshift(只要不是执行sudo rm -f /*这样的自杀程序)的时候,点击你要恢复的那个备份文件再点击Restore,经过短暂的重启后你的系统就成功恢复了。打开软件后,会有一些初始化设置,只需要一直点击 Next。根据自己电脑的内存大小决定是自动备份还是手动备份。当然,对于虚拟机用户来说,没有比在客户机直接拷贝虚拟磁盘文件更棒的方式了。点击左上角的 Create,就会执行备份操作。最下面的意思就是说不会自动备份需要手动操作。

琉璃轻纱的博客 4703

PTA | 估值一亿的AI核心代码

输入首先在第一行给出不超过 10 的正整数 N,随后 N 行,每行给出一句不超过 1000 个字符的、以回车结尾的用户的对话,对话为非空字符串,仅包括字母、数字、空格、可见的半角标点符号。代码长度限制16 KB,时间限制400 ms,内。按题面要求输出,每个 AI 的回答前要加上。存限制64 MB,栈限制8192 KB。以上图片来自新浪微博。

2201_75933169的博客 1243

Multisim14使用教程详尽版--(2025最新版)

摘要:本文详细介绍了Multisim14电路仿真软件的功能和使用方法。主要内容包括:1)主流电路仿真软件比较,突出Multisim在教学、竞赛设计中的优势;2)软件界面说明,涵盖菜单栏、工具栏、元器件库和仪器仪表;3)18类元器件分类详解及其使用操作;4)15种仪器仪表的原理和应用场景;5)电路原理图设计与仿真流程;6)基本电路分析方法(直流静态工作点分析、交流分析等)。文章还提供了硬件工程师笔试面试相关资源链接,涵盖电阻、电容、三极管等器件知识及AD软件操作指南。通过系统讲解,帮助用户掌握Multisim

XU157303764的博客 2万+

倾斜摄影数据转换为3DTile格式的方法:基于CesiumLab GIS

通过使用CesiumLab GIS,倾斜摄影数据可以方便地转换为3DTile格式,并在CesiumJS等3D地理信息可视化工具中进行展示和分析。一旦成功导入3DTile数据,就可以在CesiumLab GIS中利用其强大的可视化和分析功能进行进一步的处理。转换完成后,可以将生成的3DTile数据导入到CesiumLab GIS中进行可视化和分析。启动CesiumLab GIS应用程序,并按照界面上的指导导入转换后的3DTile数据。脚本将开始执行,并将倾斜摄影数据转换为3DTile格式。

ObDjango的博客 1075

PTA 估值一亿的AI核心代码 (20 分)

PTA 估值一亿的AI核心代码 (20 分) 本题要求你实现一个稍微更值钱一点的 AI 英文问答程序,规则是: 无论用户说什么,首先把对方说的话在一行中原样打印出来; 消除原文中多余空格:把相邻单词间的多个空格换成 1 个空格,把行首尾的空格全部删掉,把标点符号前面的空格删掉; 把原文中所有大写英文字母变成小写,除了 I; 把原文中所有独立的 can you、could you 对应地换成 I can、I could—— 这里“独立”是指被空格或标点符号分隔开的单词; 把原文中所有独立的 I 和 me 换成

qq_47395601的博客 376

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

PTA【估值一亿的AI核心代码】Java

估值一亿的AI核心代码 本题要求你实现一个稍微更值钱一点的 AI 英文问答程序,规则是: 无论用户说什么,首先把对方说的话在一行中原样打印出来; 消除原文中多余空格:把相邻单词间的多个空格换成 1 个空格,把行首尾的空格全部删掉,把标点符号前面的空格删掉; 把原文中所有大写英文字母变成小写,除了 I; 把原文中所有独立的 can you、could you 对应地换成 I can、I could—— 这里“独立”是指被空格或标点符号分隔开的单词; 把原文中所有独立的 I 和 me 换成 you; 把原文中

─━ _ ─━✧ 488

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

PTA L1-064 估值一亿的AI核心代码

题目 本题要求你实现一个稍微更值钱一点的 AI 英文问答程序,规则是: 1.无论用户说什么,首先把对方说的话在一行中原样打印出来; 2.消除原文中多余空格:把相邻单词间的多个空格换成 1 个空格,把行首尾的空格全部删掉,把标点符号前面的空格删掉; 3.把原文中所有大写英文字母变成小写,除了 I; 4.把原文中所有独立的 can you、could you 对应地换成 I can、I could——...

名字呢? 1907

PTA L1-064 估值一亿的AI核心代码的测试点5是什么,写完代过不去。。。

PTA L1-064 估值一亿的AI核心代码的测试点5是什么啊,写完代码就这个过不去,有没有大佬帮忙看看

CDSNT的博客 321

PTA估值一亿的AI核心代码 (20分)

估值一亿的AI核心代码 (20分) 以上图片来自新浪微博。 本题要求你实现一个稍微更值钱一点的 AI 英文问答程序,规则是: 无论用户说什么,首先把对方说的话在一行中原样打印出来; 消除原文中多余空格:把相邻单词间的多个空格换成 1 个空格,把行首尾的空格全部删掉,把标点符号前面的空格删掉; 把原文中所有大写英文字母变成小写,除了 I; 把原文中所有独立的 can you、could you ...

yan936462437的博客 1550

估值一亿的AI核心代码(PTA)

输入首先在第一行给出不超过 10 的正整数 N,随后 N 行,每行给出一句不超过 1000 个字符的、以回车结尾的用户的对话,对话为非空字符串,仅包括字母、数字、空格、可见的半角标点符号。把原文中所有独立的 can you、could you 对应地换成 I can、I could—— 这里“独立”是指被空格或标点符号分隔开的单词;消除原文中多余空格:把相邻单词间的多个空格换成 1 个空格,把行首尾的空格全部删掉,把标点符号前面的空格删掉;把原文中所有独立的 I 和 me 换成 you;

m0_73841621的博客 779

L1-064 估值一亿的AI核心代码(pta)

刷题和题解

2402_82658387的博客 1165
上一篇: PTA龙龙送外卖
下一篇: C. Hamburgers Codeforces Round 218 (Div. 2)
翰墨织梦
博客等级 码龄4年 384粉丝 84原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值