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;
}
目录
相关文章
|
18天前
|
存储 人工智能 开发工具
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
只需要通过向AI助理提问的方式输入您的需求,即可瞬间获得核心流程代码及参数,缩短学习路径、提升开发效率。
1247 3
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
|
11天前
|
人工智能 IDE Java
AI 代码工具大揭秘:提高编程效率的必备神器!
【10月更文挑战第1天】近年来,人工智能得到了迅猛的发展,并在各行各业都得到了广泛应用。尤其是近两年来,AI开发工具逐渐成为开发者们的新宠,其中 GitHub Copilot 更是引发了无限可能性的探索。
59 9
AI 代码工具大揭秘:提高编程效率的必备神器!
|
2天前
|
人工智能
|
1月前
|
人工智能 Java 测试技术
低成本工程实践-AI帮我写代码做需求
本文主要讲述,以“无需训练模型”的方式实现:AI智能分析功能需求、写代码、review代码解决特定业务问题的实践过程
低成本工程实践-AI帮我写代码做需求
|
5天前
|
人工智能 算法 数据挖掘
AI心语:智能代码与人为艺术的融合
在这个数字时代,人工智能似乎无所不能。它下棋能赢过世界冠军,写文章可骗过编辑,甚至画画能展览于画廊。但AI真的懂得创作吗?还是它仅仅是高级的模仿者?本文将深入探讨AI在艺术创作中的角色,以及它对人类创造力的影响。
|
1月前
|
人工智能 安全 开发者
由于安全风险,安全领导者考虑禁止用AI生成代码
由于安全风险,安全领导者考虑禁止用AI生成代码
|
1月前
|
人工智能 IDE Java
MarsCode AI 一款免费的代码辅助工具,值得一试
MarsCode是由字节跳动旗下公司推出的AI编程工具,旨在提升编码效率和质量。它既是一个云端集成开发环境(IDE),也支持作为VS Code和JetBrains等IDE的智能扩展,提供代码补全、生成、优化等功能,并支持多种编程语言。通过AI助手,MarsCode帮助开发者减少重复劳动,提高代码质量和可维护性,同时支持跨平台使用,为开发者带来便捷高效的编程体验。
121 1
|
1月前
|
存储 人工智能 前端开发
AI 网关零代码解决 AI 幻觉问题
本文主要介绍了 AI Agent 的背景,概念,探讨了 AI Agent 网关插件的使用方法,效果以及实现原理。
|
16天前
|
机器学习/深度学习 人工智能 PyTorch
【AI系统】AI 系统与程序代码关系
在人工智能领域,系统与程序代码间的关系错综复杂。AI系统的设计需高效代码支撑,而代码优化与执行又受制于系统设计。本文剖析二者间的互动及其对AI进步的关键作用,涵盖AI训练流程、经典模型LeNet5实现、底层算子与系统问题,并探讨如何通过高效代码与系统优化推动AI技术革新,提升模型性能。欢迎访问昇腾社区获取更多AI学习资源与实践机会。
30 0
|
1月前
|
人工智能
AI设计自己,代码造物主已来!UBC华人一作首提ADAS,数学能力暴涨25.9%
【9月更文挑战第15天】近年来,人工智能领域取得了显著进展,但智能体系统的设计仍需大量人力与专业知识。为解决这一问题,UBC研究人员提出了“自动智能体系统设计(ADAS)”新方法,通过基于代码的元智能体实现智能体系统的自动化设计与优化。实验结果表明,ADAS设计的智能体在多个领域中表现优异,尤其在阅读理解和数学任务上取得了显著提升。尽管如此,ADAS仍面临安全性、可扩展性和效率等挑战,需进一步研究解决。论文详情见链接:https://arxiv.org/pdf/2408.08435。
35 4