题目:

大部分论坛、网站等,为了方便管理,都进行了关于敏感词的设定。
在多数网站,敏感词一般是指带有敏感政治倾向、暴力倾向、不健康色彩的词或不文明语,也有一些网站根据自身实际情况,设定一些只适用于本网站的特殊敏感词。比如,当你发贴的时候带有某些事先设定的词时,这个贴是不能发出的。或者这个词被自动替换为星号 (),或者说是被和谐掉了。请注意敏感词只有小写字母,文本如果中的大写字母当做小写字母处理,出现敏感单词,即使作为子串出现也要被和谐,多个子串重叠他们都要被和谐。
例如当敏感词是gre,eat 是
Your English is Great.
将被和谐成
Your English is *****.
请编程,输入给定的文本和关键字,将所有被和谐的部分都打上星号 (
)

输入:

输入的第一行包含一个整数 n,表示敏感词的总数。
接下来的 n 行,每行包含一个长度不超过 100 的敏感词,单词不区分大小写。
接下来的一行包含一段长度不超过 10000的字符串表示待处理的文本。

输出:

输出一行,表示和谐过后的文本。

思路:

  1. 将敏感词存入数组
  2. 将文本ste中的字母分别转换为小写字母和大写字母,分别存入stee和steee
  3. 遍历敏感词数组
  4. 判断敏感词是否在stee中
  5. 如果在:求出敏感词的位置
  6. ste中的敏感词的字母可能都是大写,可能都是小写,或者是大小写混合,敏感词在ste,stee,steee中的位置一样,且敏感词可以有多个
  7. 使用substring(敏感词位置,敏感词位置+敏感词长度)方法分别得到ste中的敏感词(大小写混合),stee中的敏感词(小写),steee中的敏感词(大写)
  8. 用*将ste中敏感词的大写、小写和大小写混合全部替代

代码:

import java.util.Scanner;
public class SensitiveWord {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int T = sc.nextInt();// T个敏感词String[] a = new String[T];// 存放敏感词for (int i = 0; i < T; i++) {a[i] = sc.next();// 输入敏感词}sc.nextLine();// 防止输入被回车吞掉String ste = sc.nextLine();// 输入文本String stee = ste.toLowerCase();// 转换为小写字母String steee = ste.toUpperCase();//转换为大写字母String str = "***********************";//用来替换敏感词for (int i = 0; i < a.length; i++) {int o;if (stee.indexOf(a[i]) != -1) {//判断敏感词在不在stee中o = stee.indexOf(a[i]);ste = ste.replace(ste.substring(o, o + a[i].length()),str.substring(0, a[i].length()));//用*替代ste中敏感词的大小写混合ste = ste.replace(stee.substring(o, o + a[i].length()),str.substring(0, a[i].length()));//用*替代ste中敏感词的小写ste = ste.replace(steee.substring(o, o + a[i].length()),str.substring(0, a[i].length()));//用*替代ste中敏感词的大写}}System.out.println(ste);}
}

和谐敏感词(百度2017秋招真题)相关推荐

  1. 敏感词(百度2017秋招真题)

    题目描述 大部分论坛.网站等,为了方便管理,都进行了关于敏感词的设定. 在多数网站,敏感词一般是指带有敏感政治倾向.暴力倾向.不健康色彩的词或不文明语,也有一些网站根据自身实际情况,设定一些只适用于本 ...

  2. 十字架(百度2017秋招真题)深入解析

    题目链接 首先这个题目必定是递归思想,因为大的图形当中又会套上小的图形 其次必须先确定图形的中点,因为由图形的中点可以确定下来图形的位置,从中间向周围加上中间五个方向分布进行递归图形,这里我通过递归一 ...

  3. 电话号码分身(小米2017秋招真题)

    电话号码分身(小米2017秋招真题) 题目描述 继MIUI8推出手机分身功能之后,MIUI9计划推出一个电话号码分身的功能:首先将电话号码中的每个数字加上8取个位,然后使用对应的大写字母代替(&quo ...

  4. 方块消除游戏(完美世界2017秋招真题)

    方块消除游戏(完美世界2017秋招真题)题目描述 如下图,有10*10个不同颜色的方块,每个方块可能是红.绿.蓝.黄.紫5种颜色之一.当点击其中某一个方块时,如果它有相邻的同颜色方块,则将所有与此方块 ...

  5. java号码分身_[算法] 电话号码分身 (小米2017 秋招真题)[JavaScript]

    题目描述 继MIUI8推出手机分身功能,MIUI计划推出一个电话号码分身得功能:首先将电话号码中的每个数字加上8取个位,然后使用对应得大写字母代替 ("ZERO", "O ...

  6. 头条校招(今日头条2017秋招真题)

    题目描述 头条的2017校招开始了!为了这次校招,我们组织了一个规模宏大的出题团队.每个出题人都出了一些有趣的题目,而我们现在想把这些题目组合成若干场考试出来.在选题之前,我们对题目进行了盲审,并定出 ...

  7. 头条校招(今日头条2017秋招真题)1——python解法

    题目描述 头条的2017校招开始了!为了这次校招,我们组织了一个规模宏大的出题团队.每个出题人都出了一些有趣的题目,而我们现在想把这些题目组合成若干场考试出来.在选题之前,我们对题目进行了盲审,并定出 ...

  8. 树的高度(小米2017秋招真题)

    现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度. 输入 输入的第一行表示节点的个数n(1<=n<=1000,节点的编号为0到n-1)组成, ...

  9. String Shifting(今日头条2017秋招真题)

    题目链接 题目 我们规定对一个字符串的shift操作如下: shift("ABCD", 0) = "ABCD" shift("ABCD", ...

最新文章

  1. Transforms CTM, 转换矩阵
  2. layui时间怎么设置年月日时分秒_安卓手机便签敬业签到时间提醒后怎么设置延时30分钟再提醒?...
  3. 【Python】字符串类型及操作求三位水仙花数
  4. Object o = new Object()在内存中占几个字节
  5. 计算机网络原理第一章习题3-24 3-25
  6. java中打开文件显示_在默认文件资源管理器中打开文件,并使用JavaFX或普通Java突出显示它...
  7. 输入一个日期,计算这个日期与 2018-03-12差多少天;
  8. VoiceDial首款语音识别软件使用教程
  9. 如何将exe文件在linux下执行,[操作系统]如何在linux centos 环境下运行.exe文件
  10. 无法识别 移动固态硬盘_SSD固态硬盘才装上确找不到盘怎么办-原来要初始化
  11. 计算机打印机共享服务怎么开,windows7系统打印机共享怎么设置?windows7系统打印机共享设置步骤...
  12. 百度地图渲染wkt格式网格数据
  13. 财务学python可以做什么-财务方面的学生如何学习python?
  14. python小象学院: BMR------ 基础代谢率1.0
  15. DEEPIN系统下安装wine
  16. Docker 学习实战路线
  17. vue3中使用全局变量(vue2x中this)
  18. 物理CPU-Core-逻辑CPU -超线程
  19. 《啪啪三国》技术详解
  20. 根据IP定位城市名称/经纬度

热门文章

  1. Android Studio 安卓微信底部界面(带消息红点)代码
  2. WinPcap 编程
  3. 中信银行计算机岗位面试自我介绍,中信银行面试自我介绍指导
  4. 当加密软件应用于图纸上,应该如何选择呢?
  5. 成功创业小成靠智,大成靠德
  6. 文件删不掉? Chkdsk工具运行
  7. 双馈风力发电系统 ACDCAC变流器双馈风力发电机仿真模型
  8. 你知道什么是网站? 还有什么是网页吗?
  9. 我的专业我做主ppt计算机,我的专业我做主(会计专业入门知识)ppt课件
  10. matlab的meadian函数_MATLAB工程仿真与应用30例源代码