分界线-积木游戏 demo

这篇具有很好参考价值的文章主要介绍了分界线-积木游戏 demo。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 

目录

匿名信

题目描述:

输入描述

输出描述:

示例:

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里面没有拼出来 就返回false
            if (!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;
        }

        文章来源地址https://www.toymoban.com/news/detail-732876.html

到了这里,关于分界线-积木游戏 demo的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【华为OD机试】叠积木(贪心算法—Java&Python&C++&JS实现)

    本文收录于专栏:算法之翼 本专栏所有题目均包含优质解题思路,高质量解题代码(JavaPythonC++JS分别实现),详细代码讲解,助你深入学习,深度掌握!

    2024年04月13日
    浏览(42)
  • 【游戏开发实战】Unity手游第一人称视角,双摇杆控制,FPS射击游戏Demo(教程 | 含Demo工程源码)

    一、前言 嗨,大家好,我是新发。 有同学私信我,问我能不能写一篇Unity手游第一人称视角控制的教程, 那么,今天就来做个 Demo 吧~ 注: Demo 工程源码见文章末尾 最终效果如下: 二、实现方案 1、无主之地,第一人称视角 第一人称视角的游戏大家应该不陌生,比如《无主

    2023年04月08日
    浏览(53)
  • 华为OD机试 - 叠积木(Java & JS & Python)

    题目描述 有一堆长方体积木,它们的宽度和高度都相同,但长度不一。 小橙想把这堆积木叠成一面墙,墙的每层可以放一个积木,也可以将两个积木拼接起来,要求每层的长度相同。 若必须用完这些积木,叠成的墙最多为多少层? 输入描述 输入为一行,为各个积木的长度

    2024年02月10日
    浏览(46)
  • 游戏开发中的噪声算法

    噪声是游戏编程的常见技术,广泛应用于地形生成,图形学等多方面。 那么为什么要引入噪声这个概念呢?在程序中,我们经常使用直接使用最简单的rand()生成随机值,但它的问题在于生成的随机值太“随机”了,得到的值往往总是参差不齐,如下图使用随机值作为像素点的

    2024年01月20日
    浏览(33)
  • Unity游戏开发客户端面经——算法(初级)

    前言:记录了总6w字的面经知识点,文章中的知识点若想深入了解,可以点击链接学习。由于文本太多,按类型分开。这一篇是 算法 常问问题总结,有帮助的可以收藏。           时间复杂度:O(n²)        :冒泡排序、选择排序、插入排序                 

    2024年03月22日
    浏览(47)
  • 贪心算法-跳跃游戏问题(java)

    1.1 题目描述 输入是一个非负整数数组nums,数组元素nums[i]代表你站的位置i最多能够向前跳几步。现在你站的第一个位置nums[0],请问能否跳到最后一个位置。 举例: nums = [2,3,1,1,4] 这个就可以跳到最后,返回true nums = [3,2,1,0,4]这个就无法跳到最后,返回false 1.2解题思路: 我们每

    2024年02月05日
    浏览(51)
  • 【unity demo】使用unity制作射击游戏demo (上)

    主要是安装unity对应的版本,并配置相应的ide,目前我用的是unity 2021.3.21。 通过edit-prefreneces面板,external tools选项中配置ide环境,自动使用vs code来打开工程中的代码文档。 即游戏设计文档(Game Design Document, GDD),我们需要预先对待实现的完整demo进行设计,包括5个部分:

    2024年02月08日
    浏览(65)
  • Java游戏开发 —— 坦克大战

    坦克大战也是小时一个比较经典的游戏了,我在网上也是参考了韩顺平老师写的坦克大战,并做了一下完善,编写出来作为儿时的回忆吧! 创建主窗口,加载菜单及游戏面板。 在游戏面板中初始化各种参数,并建立各种功能组件。 利用线程固定刷新游戏界面。 处理各种碰撞

    2024年02月06日
    浏览(59)
  • 【unity】快速了解游戏制作流程-制作九宫格简单游戏demo

            hi~大家好呀!欢迎来到我的unity学习笔记系列~,本篇我会简单的记录一下游戏流程并且简单上手一个通过九宫格移动到指定位置的小游戏,话不多说,我们直接开始吧~                  本篇源自我看B站一位up主的视频所做的笔记,感兴趣的可以去看原视频哦

    2023年04月08日
    浏览(57)
  • 游戏开发中常用的算法1(20道题一篇文章)

    步骤1:选取一串数字中的中心轴 步骤2:将大于中心轴的数字放在右边 步骤3:将小于中心轴的数字放在左边 步骤4:分别对左右两个序列重复前三步操作 步骤一、从数组的最左侧两个元素进行比较 步骤二、将较大的数向右移动,再进行比较 步骤三、直到将最大的数字放在最

    2024年02月06日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包