分界线-积木游戏 demo

news/2025/2/12 4:13:08/

 

目录

匿名信

题目描述:

输入描述

输出描述:

示例:

Java实现 (期待看官能够修复一下, 害):

二、积木游戏

题目描述:

输入描述

输出描述

补充说明

示例

Java代码实现


匿名信

题目描述:

电视剧《分界线》里面有一个片段,男主为了向警察透露案件细节,且不暴露自己,于是将报刊上的字
剪切下来,剪拼成匿名信。
现在有一名举报人,希望借鉴这种手段,使用英文报刊完成举报操作。
但为了增加文章的混淆度,只需满足每个单词中字母数量一致即可,不关注每个字母的顺序。
解释:单词 'on' 允许通过单词 'no' 进行替代。
报纸代表 newspaper , 匿名信代表 anonymousLetter , 求报纸内容是否可以拼成匿名信。

输入描述

第一行输入 newspaper 内容,包括 1 - N 个字符串,用空格分开
第二行输入 anonymousLetter 内容,包括 1 - N 个字符串,用空格分开
1 newspaper anonymousLetter 的字符串由小写英文字母组成且每个字母只能使用一次
2 newspaper 内容中的每个字符串字母顺序可以任意调整 , 但必须保证字符串的完整性 ( 每个字符串不
能有多余字母 )
3 1 < N < 100 1 <= newspaper . length anonymousLetter . length <= 10

输出描述:

如果报纸可以拼成匿名信返回 true ,否则返回 false

示例:

示例 1
输入 :
ab cd
ab
输出: true
示例 2
输入:
ab ef
aef
输出: false
示例 3
输入:
ab bcd ef
cbd fe
输出: true
示例 4
输入:
ab bcd ef
cd ef
输出: false
示例 5
输入:
wood wood wood
wodo wdoo
输出: true
示例 6
输入:
wood
wodo wood
输出: false

Java实现 (期待看官能够修复一下, 害):

public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String newspaper = scanner.nextLine();String anonymous = scanner.nextLine();String[] newspaperArray = newspaper.split(" ");String[] anonymousArray = anonymous.split(" ");TreeSet<String> set = new TreeSet<>();for (String news : newspaperArray) {char[] charArray = news.toCharArray();Arrays.sort(charArray);String value = String.valueOf(charArray);if (!set.contains(value)) {set.add(value);}}boolean canAppend = true;for (String anonymousStr : anonymousArray) {char[]  anonymousCharArray = anonymousStr.toCharArray();Arrays.sort(anonymousCharArray);String sortedAnonymous = String.valueOf(anonymousCharArray);//set里面没有拼出来 就返回falseif (!set.contains(sortedAnonymous)) {canAppend = false;break;}}System.out.println(canAppend ? "true" : "false");}

二、积木游戏

题目描述:

小华和小薇一起通过玩积木游戏学习数学。
他们有很多积木,每个积木块上都有一个数字,积木块上的数字可能相同。
小华随机拿一些积木挨着排成一排,请小薇找到这排积木中数字相同且所处位置最远的 2 块积木块,计
算他们的距离。
小薇请你帮忙替解决这个问题。

输入描述

第一行输入为 N ,表示小华排成一排的积木总数。
接下来 N 行每行一个数字,表示小华排成一排的积木上数字。

输出描述

相同数字的积木的位置最远距离;
如果所有积木数字都不相同,请返回 - 1.

补充说明

0 <= 积木上的数字 < 10 ^9
1 <= 积木长度 <= 10 ^5

示例

示例 1
输入:
5
1
2
3
1
4
输出: 3
说明:一共有 5 个积木,第 1 个积木和第 4 个积木数字相同,其距离为 3 ;
输入:
2
1
2
输出: - 1
说明:一共有 2 个积木,没有积木数字相同,返回 - 1 ;

Java代码实现

   public static void main(String[] args) {Scanner sc = new Scanner(System.in);int N = sc.nextInt();int[] nums = new int[N];for (int i = 0; i < N; i++) {nums[i] = sc.nextInt();}System.out.println(findMaxDistance(nums));}public static int findMaxDistance(int[] nums) {Map<Integer, Integer> map = new HashMap<>();int maxDistance = -1;for (int i = 0; i < nums.length; i++) {if (map.containsKey(nums[i])) {//这段代码是计算最大距离的。//首先,定义了一个变量maxDistance来存储最大距离,初始值为-1。//然后,使用一个循环遍历输入的积木上的数字。在每次循环中,通过map.get(nums[i])获取当前数字在HashMap中对应的位置。如果该位置存在(即之前已经出现过这个数字),则计算当前位置与之前出现该数字的位置之间的距离,并更新maxDistance为较大的那个值。如果该位置不存在(即之前没有出现过这个数字),则将当前位置存入HashMap中。//最后,返回maxDistance作为结果。maxDistance = Math.max(maxDistance, i - map.get(nums[i]));} else {map.put(nums[i], i);}}return maxDistance;}

        


http://www.ppmy.cn/news/1116086.html

相关文章

Navicat历史版本下载及地址组成分析

下载地址组成 https://download3.navicat.com/download/navicat161_premium_cs_x64.exe 地址逻辑&#xff1a;前缀 版本 类型 语言 位数 前缀: http://download.navicat.com/download/navicat版本: 三位数&#xff0c;前两位是大版本&#xff0c;后一位是小版本&#xff…

leetcode522. 最长特殊序列 II(java)

最长特殊序列 题目描述枚举法代码演示 题目描述 难度 - 中等 leetcode522. 最长特殊序列 II 给定字符串列表 strs &#xff0c;返回其中 最长的特殊序列 的长度。如果最长特殊序列不存在&#xff0c;返回 -1 。 特殊序列 定义如下&#xff1a;该序列为某字符串 独有的子序列&a…

深入探索图像处理:从基础到高级应用

&#x1f482; 个人网站:【工具大全】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 图像处理是计算机视觉领…

C++:new 和 delete

个人主页 &#xff1a; 个人主页 个人专栏 &#xff1a; 《数据结构》 《C语言》《C》 文章目录 前言一、C内存管理1.内置类型2.自定义类型3.delete 与 new不匹配使用问题(VS平台下) 二、operator new 与 operator delete函数三、 new 和delete的实现原理内置类型自定义类型 四…

使用Python进行RFM分析

RFM分析用于根据客户的购买行为来了解和细分客户。RFM代表最近一次消费 (Recency)、消费频率 (Frequency)和消费金额 (Monetary)&#xff0c;这是三个关键指标&#xff0c;可提供有关客户参与度、忠诚度和企业价值的信息。本文将带您完成使用Python进行RFM分析的任务。 RFM分析…

王道考研操作系统

王道考研操作系统 计算机系统概述操作系统的概念操作系统的特征操作系统的发展历程操作系统内核中断和异常![在这里插入图片描述](https://img-blog.csdnimg.cn/162452b4c60144e0bd500e180127c447.png)系统调用操作系统结构虚拟机错题 进程与线程进程控制进程通信线程和多线程模…

使用patch-package保存node_modules包修改

遇到情况&#xff0c;第三方包存在bug或者缺少文件时候&#xff0c;我们手动修改了某个包时候&#xff0c;下次npm安装时候会导致原来的修改呗覆盖 安装 这时候可以用到npm工具包patch-package&#xff0c;项目更目录命令行安装 npm i -D patch-package修改文件 修改好nod…

mysql知识大全

MySQL知识大全&#xff08;2&#xff09; MySqL 基础为1—7&#xff08;增删改查基础语法&#xff09;&#xff0c;MySQL进阶知识为8—11&#xff08;约束、数据库设计、多表查询、事务&#xff09; 1、数据库相关概念 以前我们做系统&#xff0c;数据持久化的存储采用的是文件…