和谐敏感词(百度2017秋招真题)
题目:
大部分论坛、网站等,为了方便管理,都进行了关于敏感词的设定。
在多数网站,敏感词一般是指带有敏感政治倾向、暴力倾向、不健康色彩的词或不文明语,也有一些网站根据自身实际情况,设定一些只适用于本网站的特殊敏感词。比如,当你发贴的时候带有某些事先设定的词时,这个贴是不能发出的。或者这个词被自动替换为星号 (),或者说是被和谐掉了。请注意敏感词只有小写字母,文本如果中的大写字母当做小写字母处理,出现敏感单词,即使作为子串出现也要被和谐,多个子串重叠他们都要被和谐。
例如当敏感词是gre,eat 是
Your English is Great.
将被和谐成
Your English is *****.
请编程,输入给定的文本和关键字,将所有被和谐的部分都打上星号 ()
输入:
输入的第一行包含一个整数 n,表示敏感词的总数。
接下来的 n 行,每行包含一个长度不超过 100 的敏感词,单词不区分大小写。
接下来的一行包含一段长度不超过 10000的字符串表示待处理的文本。
输出:
输出一行,表示和谐过后的文本。
思路:
- 将敏感词存入数组
- 将文本ste中的字母分别转换为小写字母和大写字母,分别存入stee和steee
- 遍历敏感词数组
- 判断敏感词是否在stee中
- 如果在:求出敏感词的位置
- ste中的敏感词的字母可能都是大写,可能都是小写,或者是大小写混合,敏感词在ste,stee,steee中的位置一样,且敏感词可以有多个
- 使用substring(敏感词位置,敏感词位置+敏感词长度)方法分别得到ste中的敏感词(大小写混合),stee中的敏感词(小写),steee中的敏感词(大写)
- 用*将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秋招真题)相关推荐
- 敏感词(百度2017秋招真题)
题目描述 大部分论坛.网站等,为了方便管理,都进行了关于敏感词的设定. 在多数网站,敏感词一般是指带有敏感政治倾向.暴力倾向.不健康色彩的词或不文明语,也有一些网站根据自身实际情况,设定一些只适用于本 ...
- 十字架(百度2017秋招真题)深入解析
题目链接 首先这个题目必定是递归思想,因为大的图形当中又会套上小的图形 其次必须先确定图形的中点,因为由图形的中点可以确定下来图形的位置,从中间向周围加上中间五个方向分布进行递归图形,这里我通过递归一 ...
- 电话号码分身(小米2017秋招真题)
电话号码分身(小米2017秋招真题) 题目描述 继MIUI8推出手机分身功能之后,MIUI9计划推出一个电话号码分身的功能:首先将电话号码中的每个数字加上8取个位,然后使用对应的大写字母代替(&quo ...
- 方块消除游戏(完美世界2017秋招真题)
方块消除游戏(完美世界2017秋招真题)题目描述 如下图,有10*10个不同颜色的方块,每个方块可能是红.绿.蓝.黄.紫5种颜色之一.当点击其中某一个方块时,如果它有相邻的同颜色方块,则将所有与此方块 ...
- java号码分身_[算法] 电话号码分身 (小米2017 秋招真题)[JavaScript]
题目描述 继MIUI8推出手机分身功能,MIUI计划推出一个电话号码分身得功能:首先将电话号码中的每个数字加上8取个位,然后使用对应得大写字母代替 ("ZERO", "O ...
- 头条校招(今日头条2017秋招真题)
题目描述 头条的2017校招开始了!为了这次校招,我们组织了一个规模宏大的出题团队.每个出题人都出了一些有趣的题目,而我们现在想把这些题目组合成若干场考试出来.在选题之前,我们对题目进行了盲审,并定出 ...
- 头条校招(今日头条2017秋招真题)1——python解法
题目描述 头条的2017校招开始了!为了这次校招,我们组织了一个规模宏大的出题团队.每个出题人都出了一些有趣的题目,而我们现在想把这些题目组合成若干场考试出来.在选题之前,我们对题目进行了盲审,并定出 ...
- 树的高度(小米2017秋招真题)
现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度. 输入 输入的第一行表示节点的个数n(1<=n<=1000,节点的编号为0到n-1)组成, ...
- String Shifting(今日头条2017秋招真题)
题目链接 题目 我们规定对一个字符串的shift操作如下: shift("ABCD", 0) = "ABCD" shift("ABCD", ...
最新文章
- Transforms CTM, 转换矩阵
- layui时间怎么设置年月日时分秒_安卓手机便签敬业签到时间提醒后怎么设置延时30分钟再提醒?...
- 【Python】字符串类型及操作求三位水仙花数
- Object o = new Object()在内存中占几个字节
- 计算机网络原理第一章习题3-24 3-25
- java中打开文件显示_在默认文件资源管理器中打开文件,并使用JavaFX或普通Java突出显示它...
- 输入一个日期,计算这个日期与 2018-03-12差多少天;
- VoiceDial首款语音识别软件使用教程
- 如何将exe文件在linux下执行,[操作系统]如何在linux centos 环境下运行.exe文件
- 无法识别 移动固态硬盘_SSD固态硬盘才装上确找不到盘怎么办-原来要初始化
- 计算机打印机共享服务怎么开,windows7系统打印机共享怎么设置?windows7系统打印机共享设置步骤...
- 百度地图渲染wkt格式网格数据
- 财务学python可以做什么-财务方面的学生如何学习python?
- python小象学院: BMR------ 基础代谢率1.0
- DEEPIN系统下安装wine
- Docker 学习实战路线
- vue3中使用全局变量(vue2x中this)
- 物理CPU-Core-逻辑CPU -超线程
- 《啪啪三国》技术详解
- 根据IP定位城市名称/经纬度