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

相关文章

Java的栈与队列实现代码解析

《Java的栈与队列实现代码解析》栈是常见的线性数据结构,栈的特点是以先进后出的形式,后进先出,先进后出,分为栈底和栈顶,栈应用于内存的分配,表达式求值,存储临时的数据和方法的调用等,本文给大家介绍J... 目录栈的概念(Stack)栈的实现代码队列(Queue)模拟实现队列(双链表实现)循环队列(循环数组

Java中Switch Case多个条件处理方法举例

《Java中SwitchCase多个条件处理方法举例》Java中switch语句用于根据变量值执行不同代码块,适用于多个条件的处理,:本文主要介绍Java中SwitchCase多个条件处理的相... 目录前言基本语法处理多个条件示例1:合并相同代码的多个case示例2:通过字符串合并多个case进阶用法使用

Java中的Lambda表达式及其应用小结

《Java中的Lambda表达式及其应用小结》Java中的Lambda表达式是一项极具创新性的特性,它使得Java代码更加简洁和高效,尤其是在集合操作和并行处理方面,:本文主要介绍Java中的La... 目录前言1. 什么是Lambda表达式?2. Lambda表达式的基本语法例子1:最简单的Lambda表

Java中Scanner的用法示例小结

《Java中Scanner的用法示例小结》有时候我们在编写代码的时候可能会使用输入和输出,那Java也有自己的输入和输出,今天我们来探究一下,对JavaScanner用法相关知识感兴趣的朋友一起看看吧... 目录前言一 输出二 输入Scanner的使用多组输入三 综合练习:猜数字游戏猜数字前言有时候我们在

Spring Security+JWT如何实现前后端分离权限控制

《SpringSecurity+JWT如何实现前后端分离权限控制》本篇将手把手教你用SpringSecurity+JWT搭建一套完整的登录认证与权限控制体系,具有很好的参考价值,希望对大家... 目录Spring Security+JWT实现前后端分离权限控制实战一、为什么要用 JWT?二、JWT 基本结构

java解析jwt中的payload的用法

《java解析jwt中的payload的用法》:本文主要介绍java解析jwt中的payload的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java解析jwt中的payload1. 使用 jjwt 库步骤 1:添加依赖步骤 2:解析 JWT2. 使用 N

springboot项目如何开启https服务

《springboot项目如何开启https服务》:本文主要介绍springboot项目如何开启https服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录springboot项目开启https服务1. 生成SSL证书密钥库使用keytool生成自签名证书将

Java实现优雅日期处理的方案详解

《Java实现优雅日期处理的方案详解》在我们的日常工作中,需要经常处理各种格式,各种类似的的日期或者时间,下面我们就来看看如何使用java处理这样的日期问题吧,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言一、日期的坑1.1 日期格式化陷阱1.2 时区转换二、优雅方案的进阶之路2.1 线程安全重构2

Java中的JSONObject详解

《Java中的JSONObject详解》:本文主要介绍Java中的JSONObject详解,需要的朋友可以参考下... Java中的jsONObject详解一、引言在Java开发中,处理JSON数据是一种常见的需求。JSONObject是处理JSON对象的一个非常有用的类,它提供了一系列的API来操作J

SpringBoot多数据源配置完整指南

《SpringBoot多数据源配置完整指南》在复杂的企业应用中,经常需要连接多个数据库,SpringBoot提供了灵活的多数据源配置方式,以下是详细的实现方案,需要的朋友可以参考下... 目录一、基础多数据源配置1. 添加依赖2. 配置多个数据源3. 配置数据源Bean二、JPA多数据源配置1. 配置主数据