单词博弈Java实现(借鉴“miss若尘”博客中写的解题思路)

2023-05-16

单词博弈Java实现

,已经通过庞果网的用例测试。

代码如下



import java.util.HashMap;
public class WordGameFinalTest 
{ 
   public static  int who(String word)
    {
        HashMap<String, Integer> hs = new HashMap<String, Integer>();
        return WordGame(word, hs);
    }
    //start 提示:自动阅卷起始唯一标识,请勿删除或增加。 
    public static void main(String args[]) 
    { 
       System.out.println(who("Test"));
    } 
    //end //提示:自动阅卷结束唯一标识,请勿删除或增加。
    
    
    
    //功能函数块
    private static int WordGame(String word, HashMap<String, Integer> has) {
        // TODO Auto-generated method stub
    	
    	//要求是小写,不大于15位的英文字母,word的前提不用判断,
    	//因为题目中没有说需要抛出异常,没有第三种出口,所以不用考虑
    	
    	
    	//不用加入到容器中,是因为此次判断仅需一步
    	//不用再将length为2的word加入容器中。不用再去容器中匹配,而直接判断就可以
        if (word.length() <= 2)
            return 1;

        //去容器中找。递归时会把已经做过测试的字符串加入Map中
        if (has.containsKey(word)) {
            if (has.get(word) == 0)
            {   //System.out.println(word+"0");
                return 0;}
            else{
                //System.out.println(word+"1");
                return 1;
            }
        }

        if (word.length() == 3) {
        	//长度为三的情况。
            if (!(word.charAt(0) < word.charAt(1) || word.charAt(1) < word
                    .charAt(2))) {
            	
                has.put(word, 0);
                return 0;
            }

            else {
                has.put(word, 1);
                return 1;
            }

        }

        //一个一个删,看剩的是不是严格单调递增
        for (int i = 0; i < word.length(); i++) {
            String snew = new String(word.substring(0, i)
                    + word.substring(i + 1));
            if (isOrdered(snew)) {
                has.put(word, 1);
                return 1;
            }
        }

        
        //如果还没有判断出来,就得继续下面代码了
        //下面代码才是递归,这个题的核心
        for (int i = 0; i < word.length(); i++) {
            String snew = new String(word.substring(0, i)
                    + word.substring(i + 1));
            
            //递归,如果WordGame(snew, has)==0 /他输的意思/ 你就赢了
            if (WordGame(snew, has) == 0) {
            	
                has.put(word, 1);
                return 1;
            }
        }

        //如果还没判断出来,表示你输了。
        has.put(word, 0);
        return 0;

    }

    
    //判断s是否是严格单调递增的函数
    public static boolean isOrdered(String s) {

        // if(con.contains(s) ) return true;

        for (int i = 0; i < s.length() - 1; i++) {
            if (s.charAt(i) >= s.charAt(i + 1)) {
                return false;
            }
        }

        return true;
    }
}

通过了,开心得不得了。





本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单词博弈Java实现(借鉴“miss若尘”博客中写的解题思路) 的相关文章

  • ORA-28000: the account is locked-的解决办法

    ORA 28000 the account is locked 第一步 xff1a 使用PL SQL xff0c 登录名为system 数据库名称不变 xff0c 选择类型的时候把Normal修改为Sysdba 第二步 xff1a 选择my
  • IOS中bootstrap-select 动态加载的下拉框点击不展示(已解决)

    问题描述 bootstrap select 动态加载的option 在安卓浏览器中能点击后展示 但是在ios浏览器中点击没反应 发现原因 在重新渲染方法后加了一行 s e
  • S7-PLCSIM 无法找到STEP 7 V15 许可证(必须在此计算机上安装STEP V15应用程序)。-----(已解决)

    已经安装过step7 并且已经授权过了 xff0c 但是启动时提示下图错误 记得右键已管理员身份运行
  • 新建springboot项目, pom.xml报错 Unkown error 解决思路

    新建项目pom xml 报错 网上解决思路 xff1a 1 大多都是项目右键 Maven Update Project 选中Force Update of Snapshots Releases 进行强制更新 2 1 5 改成了2 1 3 修
  • 嵌入式软件面试总结

    背景 先说说本人的背景 xff0c 我 xff0c 一个大专人 xff0c 从事嵌入式开发两年了 xff0c 之前在一家公司是负责单片机和物联网开发的 2020年年底我选择了裸辞 xff08 主要想出去玩 xff09 直到春节结束后 xff
  • Intel NUC安装ubuntu系统的方法

    使用intel nuc安装ubuntu系统 xff0c 试验了好多次UEFI安装 xff0c 但是结果都是开机时会出现 A bootable device 除了这句话都是黑屏的现象 原因我查了很多 xff0c 也不敢确定 xff0c 现在总
  • 白骑士的树莓派教学(二):镜像烧录

    本期内容让我们来了解一下树莓派操作系统镜像烧录的操作 xff0c 所需的设备 xff1a PC机 xff0c U盘 xff0c 树莓派相关设备 什么是镜像 xff1f 所谓镜像文件其实和ZIP压缩包类似 xff0c 它将特定的一系列文件按照
  • VS Code Remote SSH远程连接异常:Resolver error: Error: Running the contributed command

    VS Code Remote SSH远程连接异常 问题描述原因分析解决方案扩展Remote SSH首次连接插件做了什么Remote SSH对于远程Linux的要求 问题描述 通过VS Code插件Remote SSH连接一台新主机时 xff
  • PHP常用六大设计模式

    单例模式 特点 xff1a 三私一公 xff1a 私有的静态变量 xff08 存放实例 xff09 xff0c 私有的构造方法 xff08 防止创建实例 xff09 xff0c 私有的克隆方法 防止克隆对象 xff0c 公有的静态方法 xf
  • matlab中文乱码的解决(UTF-8不支持的问题)

    1 解决editor中的UTF 8不支持的问题 xff0c 需要加入下面几行 在matlab 安装的目录的bin子文件夹中找到lcdata xml文件 xff1a 打开加入 lt Locale entries example gt lt l
  • FreeRTOS分析

    freertos是一个轻量级的rtos xff0c 它目前实现了一个微内核 xff0c 并且port到arm7 avr pic18 coldfire等众多处理器上 xff1b 目前已经在rtos的市场上占有不少的份额 它当然不是一个与vxw
  • STM32之FreeRTOS

    学习操作系统 xff0c 我并没有一开始就学习UCOS xff0c 而是选择了FreeRTOS FreeRTOS可以方便地搭建在各个平台上 xff0c 因为汇编相关 xff0c 都已经由官方完成 xff0c 我们要做的仅是添加自己的代码 x
  • FrankMocap Fast monocular 3D Hand and Body Motion Capture by Regression and Intergretion

    paper title FrankMocap Fast monocular 3D Hand and Body Motion Capture by Regression and Intergretion paper link https ar
  • 矩阵中的路径(C++)

    题目 xff1a 请设计一个函数 xff0c 用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径 路径可以从矩阵中的任意一个格子开始 xff0c 每一步可以在矩阵中向左 xff0c 向右 xff0c 向上 xff0c 向下移动一个格
  • TensorFlow入门(五)多层 LSTM 通俗易懂版

    欢迎转载 xff0c 但请务必注明原文出处及作者信息 64 author huangyongye 64 creat date 2017 03 09 前言 根据我本人学习 TensorFlow 实现 LSTM 的经历 xff0c 发现网上虽然
  • 程序员面试经历

    现在找工作 已经没有了毕业以后那时候找工作的那种紧张心情 自从在上家公司离职以后 自己进行了一段时间的工作 世界上本来没有面霸 面试的多了 也就成了面霸 不得不承认 一开始自己面试是有些紧张 但是 面试的多了 也就不觉得紧张 反而有些平淡了
  • keil中快速注释一段代码

    方法一 xff1a 在该段代码的前面加 在该段代码的后面加 代码 方法二 xff1a 自行添加快捷键 lt 1 gt 点击configuration lt 2 gt 点击shortcut keys xff0c 选择Edit Advanced
  • java实习两个月总结

    实习两个月总结 刚开始实习的时候激情满满 慢慢的激情也退却了 在杭州月薪3000干了两个月我自己都觉得不可思议 杭州的物价大家有目共睹 先谈谈收获 认识了java8的新特性 了解了开发中常用的工具和工具包 持续集成部署的jenkins sw
  • 一台电脑如何装3个系统操作教程

    很多小伙伴都想安装个三系统试试 xff0c 但是安装三系统需要一些装机基础才能成功安装 xff0c 电脑如何安装三系统 接下来快启动小编带大家了解电脑如何安装三系统的详细操作 xff0c 希望给走入迷途的小伙伴一些正能量 电脑三系统安装准备
  • Modbus的常见问题解答:多台设备如何连接?为什么要加终端电阻?RS485总线可挂接多少个设备?在RS485通讯中,最大传输距离是多少?

    多台RS485设备如何连接呢 xff1f 使用屏蔽双绞线 xff0c 采用手拉手菊花链式拓扑结构将网关和各串行设备节点连接起来 xff0c 并在网络起始端和末尾端设备的RS485 43 和RS485 之间各并接一个120 电阻以减少信号在两

随机推荐

  • ADRC学习|TD微分跟踪器(原理解析和Matlab实现)

    系列文章目录 TD微分跟踪器 原理解析和Matlab实现 状态扩张观测器 目录 系列文章目录前言微分跟踪器作用原理线性TD非线性TDTD的一个定理最速离散控制函数 Matlab实现参考文献 前言 学习韩老师的ADRC xff0c 把学习过程
  • ROS踩坑|warning:clock skew detected. Your build may be incomplete

    报错展示 warning xff1a clock skew detected Your build may be incomplete 问题分析 ROS编译时遇到这个问题95 是因为系统时钟错误了 xff0c 比如说你之前的编译的时间时20
  • ros学习|功能包相关|查找、安装、卸载删除某个功能包

    在运行别人的demo时 xff0c 是不是会出现找不到功能包的情况 所以查找 安装和卸载某个功能包是蛮重要的 查找 查询当前安装完成的所有包文件 rospack list 查询ros的所有功能包 span class token funct
  • Vector数组类型在ROS开发中的用法小结

    目录 前言数组类型在不同消息类型中的定义在ROS消息中的定义在C 43 43 中定义数组 vector数组的一些常用操作基本操作求数组的最值遍历数组排序数组查找数组注意 前言 ROS系统的一个显著优势就是分布式和灵活性 xff0c 用户可以
  • Java 核心技术卷一 随笔

    Java 易混 xff0c 重难点汇总 1 基础篇 整型 浮点 final 一般用于指示常量 xff0c 即变量只能被赋值一次 一旦被赋值 xff0c 就不能更改了 xff08 即没有set方法 xff09 命名规则一般使用全大写及下划线
  • Linux 面试最常问的十个问题

    如果你要去面试一个Linux系统运维工程师的职位 xff0c 下面这十个最常见的问题一定要会 xff0c 否则你的面试可能就危险了 这些都是比较基本的问题 xff0c 大家要理解 xff0c 不能光死记硬背 1 如何查看系统内核的版本 这里
  • 处理iOS开发中的各种警告

    iOS开发中我们会遇到各种警告 包括第三方不再支持更新导致的警告 苹果一些过时方法的警告 其中尤其是ASIHttpRequest的不支持更新导致有很多的警告 所以我在这里做了罗列 Semantic Warnings WarningMessa
  • c#利用虚拟串口工具进行串口通信数据的发送和接收

    原文 xff1a 我的个人博客 串口通信 串口通信 xff08 Serial Communications xff09 的概念非常简单 xff0c 串口按位 xff08 bit xff09 发送和接收字节 尽管比按字节 xff08 byte
  • stm32 移植 FreeRTOS

    1 建立裸机工程 在移植 freeRTOS 之前需要创建一个 stm32f103 的 keil5 裸机工程 所谓裸机工程就是包含 stm32f103 单片机的启动文件 xff0c 外设驱动固件库的文件集合 xff0c 也可以说是支持裸机开发
  • ESP32(Espressif-IDE)添加外部(.c .h)文件 (error:undefined reference to)

    0x00 xff1a 前言 笔记文件 用习惯了keil和iar之类的开发软件 xff0c 一下子转换到ESP32是特别的不习惯 xff0c 这里使用的开发环境是乐鑫官方推出的Espressif IDE xff0c 也是刚学折腾ESP32 x
  • 无人机地面站源码搭建环境(qt版)记录

    最近基于项目需要 xff0c 借鉴无名创新的QT版开源地面站 xff0c 搭建一款测试平台 原本以为比较简单的 但是在搭建过程中还是遇到了很多看不见的坑 xff0c 在这里分享给大家 xff0c 避免别人在开发类似项目时像我这样走弯路 基本
  • 如何才能有论文创新点?idear

    1 看别人是怎么解决问题的 xff0c 别人写的每一篇论文都是在解决问题 2 看自己领域综述性论文 xff0c 对某一问题都是一步步发展出来的 xff0c 某一方法也是一步一步更新完善的 xff0c 这些解决的都是问题 3 看一篇论文的引言
  • 前端图片裁剪cropper.js

    背景 xff1a 我们在项目中常常都会有更换登陆人头像的需求 xff0c 这个很简单直接上传一张图片展示就可以了 xff0c 但是如果上传的图片需要剪裁成正方形的话就需要我们来做一些特殊的处理 xff1b 这里我们会用到一个图片剪裁插件 x
  • 新产品开发之C流程 (C-flow)

    关于新产品开发的C流程 C flow xff0c 是世界上大公司采用的标准开发流程 xff0c 十分基本也十分重要 xff0c 但是网上关于C流程介绍相关的资料很少 xff0c 所以花点时间整理一下相关的资料 下面以软件BSP开发为例 xf
  • Arduino的Stepper库函数及其控制步进电机(ULN2003)调速

    问题来源 最近自学Arduino xff0c 在使用步进电机时开始没能使步进电机转起来 xff0c 转起来后感觉没法调速 xff0c 遂完成此篇笔记供自己后续查阅以及方便遇到相同问题的诸君寻找灵感 对于如何使步进电机转动就不详述 xff0c
  • 一、电脑端实现单片机与ESP8266的通信

    1 准备工具 xff08 硬件 软件 xff09 硬件 xff1a 51单片机开发板 ESP8266无线模块 xff08 ESP8266 01 xff09 TTL USB串口 杜邦线 数据线 xff1b 软件 xff1a keil uv4单
  • 错误 LNK2038 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“2”不匹配值“0”(main.obj 中)

    前言 vs2019报错如下图 xff1a 错误 LNK2038 检测到 ITERATOR DEBUG LEVEL 的不匹配项 值 2 不匹配值 0 main obj 中 错误原因 1 产生这个问题的原因是当前工程是Debug版本 xff0c
  • 三种获取字节码对象的方式及区别

    方式一 xff1a 对象 getClass 方法是 根对象Object的方法 是其他类继承Object的getClass方法 方式二 xff1a 类名 class xff0c 你可以理解为字节码本身就是静态的 xff0c 类加载的时字节码就
  • 关于接口与Object 类的关系

    看到这个标题 xff0c 你或许就会想好自己的那份答案 但事实上这个确实没有答案 xff0c 至少没官方证明它们之间的基友关系 看法一 xff1a 因为老师说 xff0c 你可以把接口看作是特殊的类 xff0c 所以不假思索的就认为接口也
  • 单词博弈Java实现(借鉴“miss若尘”博客中写的解题思路)

    单词博弈Java实现 xff0c 已经通过庞果网的用例测试 代码如下 import java util HashMap public class WordGameFinalTest public static int who String