加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

PTA 估值一亿的AI核心代码

发布时间:2020-12-14 06:08:25 所属栏目:百科 来源:网络整理
导读:题面 比赛时被模拟题打自闭了,本来以为是个比较麻烦的模拟,实际上只要会C++的regex不到40行就能把这个题过掉了(orz smz) regex是用来处理正则表达式,里面有个函数regex_replace(string s,regex re,string new_string)可以将s中满足正则表达式re的所有位

题面

比赛时被模拟题打自闭了,本来以为是个比较麻烦的模拟,实际上只要会C++的regex不到40行就能把这个题过掉了(orz smz)

regex是用来处理正则表达式,里面有个函数regex_replace(string s,regex re,string new_string)可以将s中满足正则表达式re的所有位置替换成new_string。

#include <bits/stdc++.h>
#include <regex>
using namespace std;
int main() {
	int n;
	scanf("%d",&n);
	while(n--) {
		cout << s << endl;
		getline(cin,s);
		cout << s << endl;
		s = regex_replace(s,regex(R"(s+)")," ");
		if(s.front() == ‘ ‘) s.erase(s.begin());
		if(s.back() == ‘ ‘) s.pop_back();
		s = regex_replace(s,regex(R"( !)"),"!");	
		s = regex_replace(s,regex(R"(,)"),",");	
		s = regex_replace(s,regex(R"( .)"),".");	
		s = regex_replace(s,regex(R"( ?)"),"?");	
		s = regex_replace(s,regex(R"( ‘)"),"‘");
		for (auto &c : s) {
			if(c != ‘I‘) c = tolower(c);
		}
		s = regex_replace(s,regex(R"(bcan youb)"),"_I can");
		s = regex_replace(s,regex(R"(bcould youb)"),"_I could");	
		s = regex_replace(s,regex(R"(bIb)"),"you");	
		s = regex_replace(s,regex(R"(bmeb)"),"you");
		s = regex_replace(s,regex(R"(?)"),"!");
		s = regex_replace(s,regex(R"(b_Ib)"),"I");	
		cout << "AI: " << s << endl;	
	}
} 

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读