C 13300000000 代表 C 呼入电话

先欣赏一个美图吧
在这里插入图片描述

给一个序列

C 13300000000 代表 C 呼入电话 ,电话号码 13300000000

W 037128* 代表 W 白名单 ,后面可以模糊匹配,而且保证出现在最后一个

如果呼入时电话在白名单中,则可以呼入,否则拒绝

请按输入顺序 输出 每个电话号的 呼入次数,拒绝次数 例如 13300000000 1 0 表示 该号码可以呼入1次,被拒绝0次

样例:

输入:

9
C 13300000000
W 13144444444
C 13144444444
W 037128*
C 03712832233
C 03712832333
C 03712832333
W 03712832*
C 03712832444

输出:

13300000000 0 1
13144444444 1 0
03712832233 1 0
03712832333 2 0
03712832444 1 0

c++

#include <string>
#include <vector>
#include <unordered_map>
#include <iostream>
#include <set>
using namespace std;vector<string> Report(const vector<pair<char, string>> &records){vector<string> result;if(records.empty()) {return result;}unordered_map<int, set<string>> mp;unordered_map<string, pair<int, int>> res;vector<string> order;for (auto record : records) {if (record.first == 'W') {mp[record.second.size()-1].insert(record.second.substr(0, record.second.size()-1));} else if(record.first == 'C') {if(res.find(record.second) == res.end()) {order.push_back(record.second);res[record.second].first = 0;res[record.second].second = 0;}bool flag = true;for(auto m : mp){if(m.second.find(record.second.substr(0, m.first)) != m.second.end()){res[record.second].first++;flag = false;break;}}if(flag) {res[record.second].second++;}}}for(auto r : order) {string s = r + " " + to_string(res[r].first) + " " + to_string(res[r].second);result.push_back(s);}return result;}
// 处理输入
int main(){
vector<string> res;int num;pair<char, string> p1;vector<pair<char, string>> records;cin >> num;for (size_t i = 0; i < num; i++){cin >> p1.first >> p1.second;records.push_back(p1);}//for (size_t i = 0; i < records.size(); i++)//{//    cout << records[i].first << records[i].second << endl;//}res = Report(records);//for (size_t i = 0; i < res.size(); i++)//{//    cout << i << res[i] << endl;//}return 0;}

python

from typing import List, Tuple
from collections import defaultdictdef Report(records: List[Tuple[str, str]]) -> List[str]:if not records:return []mp = defaultdict(set)res = {}order = []for record in records:if record[0] == 'W':mp[len(record[1])-1].add(record[1][:-1])elif record[0] == 'C':if record[1] not in res:order.append(record[1])res[record[1]] = [0, 0]flag = Truefor m in mp:if record[1][:m] in mp[m]:res[record[1]][0] += 1flag = Falsebreakif flag:res[record[1]][1] += 1result = []for r in order:s = r + " " + str(res[r][0]) + " " + str(res[r][1])result.append(s)return resultnum = int(input())
records = []
for i in range(num):p1 = input().split()records.append((p1[0], p1[1]))for record in records:print(record[0] + record[1])res = Report(records)for i, r in enumerate(res):print(str(i) + r)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/20620.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

拖拽示教功能块(含算法介绍和完整SCL ST源代码)

这篇博客介绍简单拖拽示教功能的简单原理,在了解示教功能之前大家需要熟悉运动控制相关的内容,这篇博客我们以脉冲驱动为例介绍,所以大家可以先熟悉下脉冲控制功能块,有关运动控制的相关内容,可以查看运动控制专栏,主要链接如下: SMART PLC和V90伺服实现外部脉冲位置控…

ELK插件介绍

ELK插件介绍 一、Grok 正则捕获插件1、概述2、内置正则表达式调用3、自定义表达式调用 二、multiline 多行合并插件1、概念2、安装3、使用 multiline 插件 三、date 时间处理插件1、概念2、操作3、时间戳详解 四、mutate 数据修改插件1、概念2、案例 一、Grok 正则捕获插件 1、…

java项目之多人命题系统(ssm+mysql+jsp)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的多人命题系统。技术交流和部署相关看文章末尾&#xff01; 开发环境&#xff1a; 后端&#xff1a; 开发语言&#xff1a;Java 框架&…

JavaWeb 前后端分离

AJax 1. 前端视图 ajax\src\main\webapp\ajax-register.html <html><head><meta charset"UTF-8"> </head><body><form class"form-horizontal" role"form"><div><tr><td>账号</td&…

谁能成为首个RedCap规模商用的厂商?

RedCap在“降本、小尺寸、低功耗”的呼声中逐渐成为后5G时代的宠儿&#xff0c;随着相关技术的成熟&#xff0c;RedCap如何进一步商用成为行业关注的焦点。RedCap的发展&#xff0c;离不开运营商、芯片厂商、终端厂商、模组厂商等产业关键节点的通力合作。那RedCap离正式商用还…

RT-Thread 互补滤波器 (STM32 + 6 轴 IMU)

作者&#xff1a;wuhanstudio 原文链接&#xff1a;https://zhuanlan.zhihu.com/p/611568999 最近在看无人驾驶的 Prediction 部分&#xff0c;可以利用 EKF (Extended Kalman Filter) 融合不同传感器的数据&#xff0c;例如 IMU, Lidar 和 GNSS&#xff0c;从而给出更加准确的…

Ribbon负载均衡

Ribbon负载均衡 负载均衡一般分为服务器端负载均衡和客户端负载均衡 所谓服务器端负载均衡&#xff0c;比如Nginx、F5这些&#xff0c;请求到达服务器之后由这些负载均衡器根据一定的算法将请求路由到目标服务器处理 所谓客户端负载均衡&#xff0c;比如我们要说的Ribbon&#…

Spring - 更简单的存取 Bean 对象(使用注解)

目录 一、类注解是什么 二、使用类注解 存取 Bean 对象 1. 准备工作 2. 所以使用五大类注解的规则&#xff1a; 三、五大类注解之间的关系 1. 首先可以查看 类注解的源码如下图&#xff1a; 2. 为什么需要五个类注解&#xff1f; 3. 为什么使用类注解的方式不能使用原类…

使用腾讯云轻量应用服务器搭建网站教程

腾讯云轻量应用服务器怎么搭建网站&#xff1f;太简单了&#xff0c;轻量服务器选择宝塔Linux镜像&#xff0c;然后在宝塔面板上添加站点&#xff0c;以WordPress建站为例&#xff0c;腾讯云服务器网来详细说下腾讯云轻量应用服务器搭建网站全流程&#xff0c;包括轻量服务器配…

A Simple Framework for Contrastive Learning of Visual Representations(论文翻译)

A Simple Framework for Contrastive Learning of Visual Representations 摘要1介绍2 方法2.1 对比学习框架2.2 训练大批量数据2.3 评估协议 3.用于对比表示学习的数据增强3.1.数据增强操作的组合对于学习良好的表示至关重要3.2 对比学习需要更强的数据增强比有监督学习 4. 编…

基于scrcpy的Android群控项目重构,集成Appium服务执行自动化测试用例

系列文章目录 基于scrcpy的Android群控项目重构 基于scrcpy的Android群控项目重构 进阶版 基于scrcpy的Android群控项目重构&#xff0c;获取Android屏幕元素信息并编写自动化事件&#xff08;视频&#xff09; 基于scrcpy的Android群控项目重构&#xff0c;获取Android屏幕…

虚拟机中安装RabbitMQ及使用(超详细)

目录 1. 安装Socat 2. 安装Erlang 3. 安装RabbitMQ 4. 开启管理界面及配置 5. 启动 6. 配置虚拟主机及用户 6.1. 用户角色 6.2. Virtual Hosts配置 6.2.1. 创建Virtual Hosts 6.2.2. 设置Virtual Hosts权限 1. 安装Socat 在线安装依赖环境&#xff1a; yum install g…