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

相关文章

分布式锁在Spring Boot应用中的实现过程

《分布式锁在SpringBoot应用中的实现过程》文章介绍在SpringBoot中通过自定义Lock注解、LockAspect切面和RedisLockUtils工具类实现分布式锁,确保多实例并发操作... 目录Lock注解LockASPect切面RedisLockUtils工具类总结在现代微服务架构中,分布

Java使用Thumbnailator库实现图片处理与压缩功能

《Java使用Thumbnailator库实现图片处理与压缩功能》Thumbnailator是高性能Java图像处理库,支持缩放、旋转、水印添加、裁剪及格式转换,提供易用API和性能优化,适合Web应... 目录1. 图片处理库Thumbnailator介绍2. 基本和指定大小图片缩放功能2.1 图片缩放的

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

破茧 JDBC:MyBatis 在 Spring Boot 中的轻量实践指南

《破茧JDBC:MyBatis在SpringBoot中的轻量实践指南》MyBatis是持久层框架,简化JDBC开发,通过接口+XML/注解实现数据访问,动态代理生成实现类,支持增删改查及参数... 目录一、什么是 MyBATis二、 MyBatis 入门2.1、创建项目2.2、配置数据库连接字符串2.3、入

Springboot项目启动失败提示找不到dao类的解决

《Springboot项目启动失败提示找不到dao类的解决》SpringBoot启动失败,因ProductServiceImpl未正确注入ProductDao,原因:Dao未注册为Bean,解决:在启... 目录错误描述原因解决方法总结***************************APPLICA编

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

Apache Ignite 与 Spring Boot 集成详细指南

《ApacheIgnite与SpringBoot集成详细指南》ApacheIgnite官方指南详解如何通过SpringBootStarter扩展实现自动配置,支持厚/轻客户端模式,简化Ign... 目录 一、背景:为什么需要这个集成? 二、两种集成方式(对应两种客户端模型) 三、方式一:自动配置 Thick

Spring WebClient从入门到精通

《SpringWebClient从入门到精通》本文详解SpringWebClient非阻塞响应式特性及优势,涵盖核心API、实战应用与性能优化,对比RestTemplate,为微服务通信提供高效解决... 目录一、WebClient 概述1.1 为什么选择 WebClient?1.2 WebClient 与

Java.lang.InterruptedException被中止异常的原因及解决方案

《Java.lang.InterruptedException被中止异常的原因及解决方案》Java.lang.InterruptedException是线程被中断时抛出的异常,用于协作停止执行,常见于... 目录报错问题报错原因解决方法Java.lang.InterruptedException 是 Jav