7-118 估值一亿的AI核心代码 (20 分)

简介: 7-118 估值一亿的AI核心代码 (20 分)

7-118 估值一亿的AI核心代码 (20 分)

fff228e619ce7ee066393c8af09ae5ea.jpg

以上图片来自新浪微博。


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


  • 无论用户说什么,首先把对方说的话在一行中原样打印出来;
  • 消除原文中多余空格:把相邻单词间的多个空格换成 1 个空格,把行首尾的空格全部删掉,把标点符号前面的空格删掉;
  • 把原文中所有大写英文字母变成小写,除了 I
  • 把原文中所有独立的 can youcould you 对应地换成 I canI could—— 这里“独立”是指被空格或标点符号分隔开的单词;
  • 把原文中所有独立的 Ime 换成 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


19分代码


#include<bits/stdc++.h>
using namespace std;
int main(){
    int n; cin >> n,getchar();
    string s;
    vector<string>v;
    while (n--) {
        v.clear();
        getline(cin ,s);
        cout << s << endl << "AI: ";
        for (int i = 0; i < s.size(); i++) {
            if (isalnum(s[i]) && s[i] != 'I') {
                s[i] = tolower(s[i]);
            }
            else {
                s.insert(i ," ");
                i++;
            }
            if (s[i] == '?') s[i] = '!';
        }
        stringstream t(s);
        while (t >> s) v.push_back(s);
        for (int i = 0; i < v.size(); i++) {
            if (v[i] == "I" || v[i] == "me") v[i] = "you";
            if (v[i] == "can" && v[i + 1] == "you") v[i] = "I" ,v[i + 1] = "can";
            if (v[i] == "could" && v[i + 1] == "you") v[i] = "I" ,v[i + 1] = "could";
            if (!isalnum(v[i][0])) cout << v[i];
            else {
                if (i) cout << ' ';
                cout << v[i];
            }
        }
        cout << endl;
    }
    return 0;
}


#include<bits/stdc++.h>
using namespace std;
int t;
string s;
vector<string>v;
int main() {
    cin >> t; getchar();
    while (t--) {
        v.clear();
        getline (cin ,s);
        cout << s << endl << "AI: ";
        int len = s.length();
        for (int i = 0;i < len; i++) {
            if (s[i] == '?') s[i] = '!';//将所有问号转换为省略号
            if (s[i] != 'I' && 'A' <= s[i] && s[i] <= 'Z') s[i] = (char)(s[i]+32);//除I外的大写字母全部变为小写
        } 
        for (int i = 0; i < len;) { 
            string tmp = "";
            if(s[i] == ' '){
                tmp = " ";
                while(i < len && s[i] == ' ')i++;//遇到连续的空格只存一个
            }
            else if (isalpha(s[i])) {
                while(i < len && isalpha(s[i]))tmp += s[i++];
            }
            else if (isdigit(s[i])) {
                while (i < len && isdigit(s[i]))tmp += s[i++];
            }
            else{
                tmp += s[i++];
                if (v.size() > 0 && v.back() == " ") v.pop_back();//删去字符前面的空格
            }
            if (tmp != " " || (!v.empty() && i != len)) v.push_back(tmp);//删去句首和句末的空格
        }
        for(int i = 0;i < v.size(); i++){
            if (v[i] == "I" || v[i] == "me") v[i] = "you";//所有I和me转换为you
            else if (v[i] == "you"){//遇到you时检测前一个是否为分隔符,前前个是否是"can"或"could"
                if (i < 2) continue;//小于2自然不行
                if (isdigit(v[i-1][0]) || isalpha(v[i-1][0])) continue;//数字和字母不行
                if (v[i-2] == "can") v[i-2] = "I" ,v[i] = "can";
                if (v[i-2] == "could") v[i-2] = "I",v[i] = "could";
            }
        }
        for(int i = 0; i < v.size(); i++) cout << v[i];//输出
        cout << endl;
    }//记得换行
    return 0;
}
目录
相关文章
|
1月前
|
存储 人工智能 开发工具
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
只需要通过向AI助理提问的方式输入您的需求,即可瞬间获得核心流程代码及参数,缩短学习路径、提升开发效率。
1432 4
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
|
25天前
|
人工智能 开发者
|
11天前
|
机器学习/深度学习 数据采集 人工智能
揭秘AI:机器学习的魔法与代码
【10月更文挑战第33天】本文将带你走进AI的世界,了解机器学习的原理和应用。我们将通过Python代码示例,展示如何实现一个简单的线性回归模型。无论你是AI新手还是有经验的开发者,这篇文章都会给你带来新的启示。让我们一起探索AI的奥秘吧!
|
1月前
|
人工智能 IDE Java
AI 代码工具大揭秘:提高编程效率的必备神器!
【10月更文挑战第1天】近年来,人工智能得到了迅猛的发展,并在各行各业都得到了广泛应用。尤其是近两年来,AI开发工具逐渐成为开发者们的新宠,其中 GitHub Copilot 更是引发了无限可能性的探索。
97 9
AI 代码工具大揭秘:提高编程效率的必备神器!
|
28天前
|
人工智能
|
23天前
|
人工智能 机器人 API
【通义】AI视界|谷歌Q3财报:Gemini API六个月增长14倍,公司超25%的新代码由AI生成
本文内容由通义自动生成,涵盖谷歌Q3财报、马斯克xAI融资、九巨头联盟挑战英伟达、Meta加大AI投入及麻省理工研究LLM与人脑相似性等热点资讯。更多精彩内容,请访问通通知道。
|
26天前
|
Serverless 数据安全/隐私保护 前端开发
大模型代码能力体验报告之贪吃蛇小游戏《一》:Claude.ai篇 - 生成、预览和快速部署的serverless一条龙
本文介绍了通过Claude.ai生成并优化Web版贪吃蛇游戏的过程,展示了其强大的代码生成功能及用户友好的界面设计。从初始版本的快速生成到根据用户反馈调整游戏速度,再到提供多种实用工具如文件管理、版本控制和一键部署,Claude.ai不仅是一个代码助手,更像是一个全面的serverless开发平台。文中还呼吁国内厂商关注此类技术的发展。
|
2月前
|
人工智能 机器人 Serverless
不用一行代码,如何10分钟快速打造AI助手?
推荐免费下载《10分钟打造专属AI助手》电子书,助力快速搭建AI客服系统。 本文介绍了如何在10分钟内构建能主动提问的智能导购系统,提升客户体验。通过阿里云平台,无需编码即可创建具备大模型能力的AI机器人,实现7x24小时商品推荐与客户服务。文中详细描述了从创建函数计算应用、访问示例网站到验证智能导购效果的全过程,并提供了关键代码示例。此外,还介绍了如何将智能导购集成到生产环境的方法,包括修改知识库和源码以适配具体产品。
437 18
|
1月前
|
人工智能 算法 数据挖掘
AI心语:智能代码与人为艺术的融合
在这个数字时代,人工智能似乎无所不能。它下棋能赢过世界冠军,写文章可骗过编辑,甚至画画能展览于画廊。但AI真的懂得创作吗?还是它仅仅是高级的模仿者?本文将深入探讨AI在艺术创作中的角色,以及它对人类创造力的影响。
|
1月前
|
机器学习/深度学习 人工智能 PyTorch
【AI系统】AI 系统与程序代码关系
在人工智能领域,系统与程序代码间的关系错综复杂。AI系统的设计需高效代码支撑,而代码优化与执行又受制于系统设计。本文剖析二者间的互动及其对AI进步的关键作用,涵盖AI训练流程、经典模型LeNet5实现、底层算子与系统问题,并探讨如何通过高效代码与系统优化推动AI技术革新,提升模型性能。欢迎访问昇腾社区获取更多AI学习资源与实践机会。
39 0

热门文章

最新文章