zoukankan      html  css  js  c++  java
  • PTA 估值一亿的AI核心代码

    题面

    比赛时被模拟题打自闭了,本来以为是个比较麻烦的模拟,实际上只要会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);
    	getchar();
    	while(n--) {
    	     string s;
    		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"(can you)"), "_I can");
    		s = regex_replace(s, regex(R"(could you)"), "_I could");	
    		s = regex_replace(s, regex(R"(I)"), "you");	
    		s = regex_replace(s, regex(R"(me)"), "you");
    		s = regex_replace(s, regex(R"(?)"), "!");
    		s = regex_replace(s, regex(R"(_I)"), "I");	
    		cout << "AI: " << s << endl;	
    	}
    } 
    

      

  • 相关阅读:
    简单区间dp
    【题解】石子合并
    【2019.7.6】刷题记录
    【题解】大朋友的数字
    【基础】dp系列1
    【题解】垃圾陷阱
    【题解】导弹拦截
    hadoop各组件安装(非专业人士,不定期更新)
    python逼格提升
    python第三十二天-----算法
  • 原文地址:https://www.cnblogs.com/pkgunboat/p/10651822.html
Copyright © 2011-2022 走看看