牌照识别

题目:

鉴于我市拥堵的交通状况,市政交管部门经过听证决定在道路两侧安置自动停车收费系统。当车辆驶入车位,系统会通过配有的摄像头拍摄车辆画面,通过识别车牌上的数字、字母序列识别车牌,通过连接车管所车辆信息数据库确认车辆,进行扣费。

而一些车主通过在停车时遮挡车牌上的一个或多个数字、字母序列,来阻碍识别系统的识别工作,以此逃避停车费用的缴纳。

现在你需要将已经存在车辆数据库中的可与当前已知信息相匹配的车牌信息筛选出来。

输入

输入文件的第一行包含 9 个字符的字符序列代表识别的。

其中可识别的字符已由大写字母和数字显示,“*”表示因为遮挡而未被识别的字符。

输入文件的第二行包含一个整数 n (1 ≤ n ≤ 1000) —— 机动车数据库中的牌照信息的数量。

接下来 n 行,包含相应的牌照信息,每行一个。

牌照信息为长度为 9 的仅包含数字和大写字母的字符串。所有的牌照信息保证各不相同。

输出

输出文件的第一行为一个整数 k (0 ≤ k ≤ n) —— 符合给定要求的牌照数。

接下来的 k 行,输出所有可能的牌照信息。

样例1

输入:

A**1MP19*
4
A001MP199
E885EE098
A111MP199
KT7351TTB

输出:

2
A001MP199
A111MP199
代码:

#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
    string arr;
    string mid;
    int n;
    vector<string> input;
    vector<string> midput;
    vector<string> output;
    cin>>arr;//输入格式化车牌
    cin>>n;//输入车牌数目
    for(int i = 0; i<n; i++)
    {
        cin>>mid;//输入各个车牌号
        input.push_back(mid);//保存原始车牌
        midput.push_back(mid);//保存修改后的车牌
    }
    for(int i = 0; i<n; i++)
    {
        for(int j = 0; j<9; j++ )
            if(arr[j] == '*')
            {midput[i][j] = '*';}
    }
    for(int i = 0; i<n; i++)
    {
        if(!arr.compare(midput[i]))//比较格式化车牌和修改后的各个车牌
        {output.push_back(input[i]);}//满足匹配,则保存原始车牌
    }
    cout<<output.size()<<endl;
    for(int i = 0; i<output.size(); i++)//依次输出
    {
        cout <<output[i]<<endl;
    }

}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值