UVA1597 在Web中搜索 Searching the Web

本题是蓝桥杯竞赛的一道模拟题,主要思路是对输入的文章进行处理,存储每篇文章的原始内容,并将每个单词转为小写,用空格分隔,以解决单词包含问题。查询时,检查加空格的单词是否存在。注意,样例输出的分隔线数量需根据原文输入输出校正。
摘要由CSDN通过智能技术生成

知识点:模拟

这个题主体写了38分钟,然后格式和改错,总共花了52分钟过了,对于新手感觉可以了,也是紫书写的第一道蓝题,因为知道这个就是模拟,所以其实难度降低了,因为毕竟不需要看原文。。。

主要的思路就是,输入的时候的处理,首先我们要把每个文章每一行都原封不动的储存起来,这需要一个数组,然后我们需要一个集合数组,每个文章里面的单词放到一个集合里面,然后我们还需要一个数组,用来存放每篇文章整理过后的每一行,整理的方法是,把所有的单词化成小写,然后后面加一个空格,拼成一个字符串,字符串的前面再加一个空格,这样我们想要查某个单词的时候就查前后加了空格的单词,因为不加空格,直接拿着原文那种去查,会因为单词包含单词的问题出错,然后其余的就比较简单了,然后如果查询没有查到东西要特殊输出

最后是一个特别坑的地方,那就是样例的输出是错的,分割线是10个但是样例是9个,这个你要去看原文的输入输出才知道。

#include <bits/stdc++.h>

using namespace std;

int main() {
    int t;
    cin >> t;
    getchar();
    vector<string> a[105], b[105];
    set<string> st[105];
    string s;
    for (int i = 0; i < t; i++) {
        while (getline(cin, s) && s != 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值