L1-101 别再来这么多猫娘了! - java

2024-04-26 14:20
文章标签 java 101 l1 多猫娘

本文主要是介绍L1-101 别再来这么多猫娘了! - java,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

L1-101 别再来这么多猫娘了!


Java (javac)
时间限制
500 ms
内存限制
256 MB
其他编译器
时间限制
400 ms
内存限制
64 MB
栈限制
8192 KB


题目描述:

以 GPT 技术为核心的人工智能系统出现后迅速引领了行业的变革,不仅用于大量的语言工作(如邮件编写或文章生成等工作),还被应用在一些较特殊的领域——例如去年就有同学尝试使用 ChatGPT 作弊并被当场逮捕(全校被取消成绩)。相信聪明的你一定不会犯一样的错误!

言归正传,对于 GPT 类的 AI,一个使用方式受到不少年轻用户的欢迎——将 AI 变成猫娘:
请添加图片描述

部分公司使用 AI 进行网络营销,网友同样乐于使用“变猫娘”的方式进行反击。注意:图中内容与题目无关,如无法看到图片不影响解题。

当然,由于训练数据里并不区分道德或伦理倾向,因此如果不加审查,AI 会生成大量的、不一定符合社会公序良俗的内容。尽管关于这个问题仍有争论,但至少在比赛中,我们还是期望 AI 能用于对人类更有帮助的方向上,少来一点猫娘。

因此你的工作是实现一个审查内容的代码,用于对 AI 生成的内容的初步审定。更具体地说,你会得到一段由大小写字母、数字、空格及 ASCII 码范围内的标点符号的文字,以及若干个违禁词以及警告阈值,你需要首先检查内容里有多少违禁词,如果少于阈值个,则简单地将违禁词替换为<censored>;如果大于等于阈值个,则直接输出一段警告并输出有几个违禁词。

输入格式:
输入第一行是一个正整数 N (1≤N≤100),表示违禁词的数量。接下来的 N 行,每行一个长度不超过 10 的、只包含大小写字母、数字及 ASCII 码范围内的标点符号的单词,表示应当屏蔽的违禁词。
然后的一行是一个非负整数 k (0≤k≤100),表示违禁词的阈值。
最后是一行不超过 5000 个字符的字符串,表示需要检查的文字。
从左到右处理文本,违禁词则按照输入顺序依次处理;对于有重叠的情况,无论计数还是替换,查找完成后从违禁词末尾继续处理。

输出格式:
如果违禁词数量小于阈值,则输出替换后的文本;否则先输出一行一个数字,表示违禁词的数量,然后输出He Xie Ni Quan Jia!

输入样例1:
5
MaoNiang
SeQing
BaoLi
WeiGui
BuHeShi
4
BianCheng MaoNiang ba! WeiGui De Hua Ye Keyi Shuo! BuYao BaoLi NeiRong.

输出样例1:
BianCheng <censored> ba!<censored> De Hua Ye Keyi Shuo! BuYao <censored> NeiRong.

输入样例2:
5
MaoNiang
SeQing
BaoLi
WeiGui
BuHeShi
3
BianCheng MaoNiang ba! WeiGui De Hua Ye Keyi Shuo! BuYao BaoLi NeiRong.

输出样例2:
3
He Xie Ni Quan Jia!

输入样例3:
2
AA
BB
3
AAABBB

输出样例3:
<censored>A<censored>B

输入样例4:
2
AB
BB
3
AAABBB

输出样例4:
AA<censored><censored>

输入样例5:
2
BB
AB
3
AAABBB

输出样例5:
AAA<censored>B


将给定文本,从左到右依次处理每一个违禁词

如果出现违禁词的数量大于等于阈值: 则输出出现违禁词的数量,以及He Xie Ni Quan Jia!
否则出现违禁词的数量小于阈值: 则输出替换后的文本


emmmmmmm

可以利用字符串替换先将违禁词统一替换成一个文本中不会出现的词,然后边替换违禁词边统计个数。

最后判断违禁词的个数

输出指定的内容即可

如果小于的话,则最后再将替换中间词替换成指定的<censored>即可

(不是不想一步到位,而是他Tle呀。呜呜呜)


import java.io.*;
import java.util.*;public class Main
{public static void main(String[] args){int n = sc.nextInt();String shu[] = new String[n + 10]; // 统计违禁词for (int i = 1; i <= n; i++)shu[i] = sc.next();int k = sc.nextInt(); // 输入文本sc.nextLine();String replace = "-__-"; // 违禁词替换中间词int replaceLen = replace.length(); // 违禁词替换中间词的长度String replaceTo = "<censored>"; // 违禁词须替换的词,也就是最后将替换中间词替换成该次StringBuilder t = new StringBuilder(sc.nextLine());int ans = 0;for (int i = 1; i <= n; i++){int len = shu[i].length(); // 当前违禁词的长度int start = 0; // 替换位置的起始位置while (start != -1){start = t.indexOf(shu[i]); // 去找替换的起始位置if (start != -1) // 如果还存在当前的违禁词{t = t.replace(start, start + len, replace); // 将当前违禁词替换成中间词ans++; // 违禁词的个数+}}}if (ans >= k) // 如果违禁词的数量大于等于阈值{out.println(ans);out.println("He Xie Ni Quan Jia!");} else // 违禁词的数量小于阈值{int start = 0; // 替换位置的起始位置while (start != -1){start = t.indexOf(replace); // 去找替换的起始位置if (start != -1) // 如果还有中间词可以替换t = t.replace(start, start + replaceLen, replaceTo); // 将中间词替换成替换词}out.println(t);}out.flush();out.close();}static Scanner sc = new Scanner(System.in);static PrintWriter out = new PrintWriter(System.out);}

StringBuilder


如果有说错的 或者 不懂的 尽管提 嘻嘻

一起进步!!!


闪现

这篇关于L1-101 别再来这么多猫娘了! - java的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/937813

相关文章

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

Java 字符数组转字符串的常用方法

《Java字符数组转字符串的常用方法》文章总结了在Java中将字符数组转换为字符串的几种常用方法,包括使用String构造函数、String.valueOf()方法、StringBuilder以及A... 目录1. 使用String构造函数1.1 基本转换方法1.2 注意事项2. 使用String.valu

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

Spring MVC如何设置响应

《SpringMVC如何设置响应》本文介绍了如何在Spring框架中设置响应,并通过不同的注解返回静态页面、HTML片段和JSON数据,此外,还讲解了如何设置响应的状态码和Header... 目录1. 返回静态页面1.1 Spring 默认扫描路径1.2 @RestController2. 返回 html2

Spring常见错误之Web嵌套对象校验失效解决办法

《Spring常见错误之Web嵌套对象校验失效解决办法》:本文主要介绍Spring常见错误之Web嵌套对象校验失效解决的相关资料,通过在Phone对象上添加@Valid注解,问题得以解决,需要的朋... 目录问题复现案例解析问题修正总结  问题复现当开发一个学籍管理系统时,我们会提供了一个 API 接口去

Java操作ElasticSearch的实例详解

《Java操作ElasticSearch的实例详解》Elasticsearch是一个分布式的搜索和分析引擎,广泛用于全文搜索、日志分析等场景,本文将介绍如何在Java应用中使用Elastics... 目录简介环境准备1. 安装 Elasticsearch2. 添加依赖连接 Elasticsearch1. 创

Spring核心思想之浅谈IoC容器与依赖倒置(DI)

《Spring核心思想之浅谈IoC容器与依赖倒置(DI)》文章介绍了Spring的IoC和DI机制,以及MyBatis的动态代理,通过注解和反射,Spring能够自动管理对象的创建和依赖注入,而MyB... 目录一、控制反转 IoC二、依赖倒置 DI1. 详细概念2. Spring 中 DI 的实现原理三、

SpringBoot 整合 Grizzly的过程

《SpringBoot整合Grizzly的过程》Grizzly是一个高性能的、异步的、非阻塞的HTTP服务器框架,它可以与SpringBoot一起提供比传统的Tomcat或Jet... 目录为什么选择 Grizzly?Spring Boot + Grizzly 整合的优势添加依赖自定义 Grizzly 作为