当前位置: 首页 > news >正文

[编程题]抄送列表 - 牛客网题解

[编程题]抄送列表

NowCoder每天要处理许多邮件,但他并不是在收件人列表中,有时候只是被抄送。他认为这些抄送的邮件重要性比自己在收件人列表里的邮件低,因此他要过滤掉这些次要的邮件,优先处理重要的邮件。
现在给你一串抄送列表,请你判断目标用户是否在抄送列表中。

输入描述:
输入有多组数据,每组数据有两行。

第一行抄送列表,姓名之间用一个逗号隔开。如果姓名中包含空格或逗号,则姓名包含在双引号里。总长度不超过512个字符。

第二行只包含一个姓名,是待查找的用户的名字(姓名要完全匹配)。长度不超过16个字符。


输出描述:
如果第二行的名字出现在收件人列表中,则输出“Ignore”,表示这封邮件不重要;否则,输出“Important!”,表示这封邮件需要被优先处理。

import java.util.*;
public class Main2{
    public static void main(String[] args){
        // 循环处理每组测试用例
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            // 接收第一行的所有名字
            String name = sc.nextLine();
            int i = 0;
            int end = 0;
            Set<String> s = new HashSet<>();
            while(i < name.length()){
                if('\"' == name.charAt(i)){
                    // 名字包含在""中 gb
                    end = name.indexOf('\"', i + 1);
                    s.add(name.substring(i+1, end)); // 参数1:起始位置 参数2:表示末尾位置---注
                    // 意:该位置的字符不会被截取到,截取到该位置之前的字符
                            i = end + 2;
                }else{
                    // 名字没有包含在""中,如果是最后一个姓名,后面没有“,“,则返回-1
                    end = name.indexOf(',', i+1);
                    if(-1 == end){
                        // 现在要分割的名字是最后一个名字
                        s.add(name.substring(i, name.length()));
                        break;
                    }
                    name.substring(i, end);
                    i = end + 1;
                }
            }
            // 获取第二行的名字并检测该名字是否在Set中存在
            name = sc.nextLine();
            if(s.contains(name)){
                System.out.println("Ignore");
            }else{
                System.out.println("Important!");
            }
        }
    }
}

相关文章:

  • 【JavaScript】JQuery基础使用
  • 学习Python的第一天
  • 进程和线程概念和区别详解
  • “竞速”智能网联汽车,领头雁为何是长沙?
  • 程序员必须要懂的首字母大写规范
  • C primer plus学习笔记 —— 7、字符串
  • 【我的OpenGL学习进阶之旅】当你运行OpenGL程序的时候,程序并不绘制任何内容,并且白屏和黑屏的时候怎么排查?
  • 【Node.js项目】大事件项目:后台架构图(含具体技术栈)、典型代码
  • Connor学Android - JNI和NDK编程
  • DOM 重点核心
  • 基于Python、wxpython的高校教务系统设计与实现
  • python的安装教程
  • DDD 洋葱架构才是 yyds!阿里大牛手记(DDD)领域驱动设计应对之道
  • Android 进阶——系统启动之SystemServer创建并启动PackageManagerService服务(十一)
  • JavaScript之document对象最常用相关知识总结
  • 78. Subsets
  • canvas 绘制双线技巧
  • Druid 在有赞的实践
  • eclipse(luna)创建web工程
  • EventListener原理
  • JavaScript 奇技淫巧
  • java中具有继承关系的类及其对象初始化顺序
  • Spring Boot MyBatis配置多种数据库
  • spring boot 整合mybatis 无法输出sql的问题
  • 程序员该如何有效的找工作?
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 前嗅ForeSpider中数据浏览界面介绍
  • 嵌入式文件系统
  • 如何利用MongoDB打造TOP榜小程序
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 使用parted解决大于2T的磁盘分区
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • RDS-Mysql 物理备份恢复到本地数据库上
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • ​linux启动进程的方式
  • ​插件化DPI在商用WIFI中的价值
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #《AI中文版》V3 第 1 章 概述
  • (1)(1.9) MSP (version 4.2)
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (第二周)效能测试
  • (十六)Flask之蓝图
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • (转)fock函数详解
  • .CSS-hover 的解释
  • .gitignore文件—git忽略文件
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .net 获取url的方法
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .net的socket示例
  • .NET开发人员必知的八个网站
  • .stream().map与.stream().flatMap的使用