java —— 笨小猴

2024-01-19 02:48
文章标签 java 笨小猴

本文主要是介绍java —— 笨小猴,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

java —— 笨小猴

题目详情

笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选

对的几率非常大!这种方法的具体描述如下:

假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质数,那

么笨小猴就认为这是个Lucky Word,这样的单词很可能就是正确的答案。

输入格式:

| 输入只有一行,是一个单词,其中只可能出现小写字母,并且长度小于100。 |

输出格式:

| 输出共两行,第一行是一个字符串,假设输入的的单词是Lucky Word,那么输出“Lucky Word”,否则输出“No Answer”; 第二行是一个整数,如果输入单词是Lucky Word,输出maxn-minn的值,否则输出0。 |

代码如下:

方法一:

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String str = sc.nextLine(); // 从键盘输入一个字符串char[] ch = str.toCharArray(); // 把字符串转换为字符数组int[] a = new int[100]; // 因为最多有100个字母,用于存储str中每个位置字母的个数int maxn = 0, minn = 100; // 因为当100字母都是相同的则最小就为100for (int i = 0; i < ch.length; i ++){//找出每个位置字母在整个字符串中相同字母的个数int num = 0;for (int j = 0; j < ch.length; j ++){if (ch[j] == ch[i]){num ++;}}a[i] = num;}for (int i = 0; i < ch.length; i ++){ // 根据比较大小来判断数组a中谁最大谁最小if (maxn < a[i]){maxn = a[i];}if (minn > a[i]){minn = a[i];}}if (Prime(maxn , minn) == true){System.out.println("Lucky Word");System.out.println(maxn - minn);} else {System.out.println("No Answer");System.out.println("0");}}public static boolean Prime(int a, int b){ // 自定义一个方法判断是不是质数if (a - b < 2)return false; // 利用Math.sqrt(double)将a-b强制转换为duoble型for (int i = 2; i <= Math.sqrt((double) (a - b)); i ++){if ((a - b) % i == 0){return false;}}return true;}
}

方法二:(提供者:Jplusztx)


import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner stdIn = new Scanner(System.in);String str = stdIn.next(); // 从键盘输入字符串int[] letters = new int[26];//因为只有26个字母,所以开辟大小为26的空间int maxIndex = 0, minIndex = 0;for (int i = 0; i < str.length(); i++) { // .length() 获取字符串长度int index = str.charAt(i) - 'a'; // 获取str字符串指定处i的字符,并减掉 'a',得到的数范围是[0,25]letters[index]++; //  if (letters[index] > letters[maxIndex])maxIndex = index;//字母必须是在单词中出现过,才能被记录,所以此处加上letters[index] == 0条件if (letters[minIndex] == 0 || letters[index] < letters[minIndex])minIndex = index;}if (isPrime(letters[maxIndex] - letters[minIndex])){System.out.println("Lucky Word");System.out.println(letters[maxIndex] - letters[minIndex]);}else {System.out.println("No Answer");System.out.println(0);}}public static boolean isPrime(int n){ // 判断是不是质数for (int i = 2; i <= Math.sqrt(n); i++) {if (n % i == 0) return false;}return n > 1; // return n > 1返回值是boolean值,同时考虑了 n = 0 或 1 的情况}
}
 int index = str.charAt(i) - 'a'; // 获取str字符串指定处i的字符,并减掉 'a',得到的数范围是[0,25]letters[index]++; 

此处利用了 字符串名.charAt() 获取字符串指定位置的字母,并且此处全为小写字母,因此减去 ’ a ’ 会得到一个0~25之间的数,从而letter[index] 再进行累加,比如letters[0]就代表a出现的次数,所以我们只用统计数组letter 的下标就可以间接的统计某一个字母出现的次数。

字符串名.charAt(): 返回指定处的字符。

这篇关于java —— 笨小猴的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/621056

相关文章

Spring Boot中的路径变量示例详解

《SpringBoot中的路径变量示例详解》SpringBoot中PathVariable通过@PathVariable注解实现URL参数与方法参数绑定,支持多参数接收、类型转换、可选参数、默认值及... 目录一. 基本用法与参数映射1.路径定义2.参数绑定&nhttp://www.chinasem.cnbs

JAVA中安装多个JDK的方法

《JAVA中安装多个JDK的方法》文章介绍了在Windows系统上安装多个JDK版本的方法,包括下载、安装路径修改、环境变量配置(JAVA_HOME和Path),并说明如何通过调整JAVA_HOME在... 首先去oracle官网下载好两个版本不同的jdk(需要登录Oracle账号,没有可以免费注册)下载完

Spring StateMachine实现状态机使用示例详解

《SpringStateMachine实现状态机使用示例详解》本文介绍SpringStateMachine实现状态机的步骤,包括依赖导入、枚举定义、状态转移规则配置、上下文管理及服务调用示例,重点解... 目录什么是状态机使用示例什么是状态机状态机是计算机科学中的​​核心建模工具​​,用于描述对象在其生命

Spring Boot 结合 WxJava 实现文章上传微信公众号草稿箱与群发

《SpringBoot结合WxJava实现文章上传微信公众号草稿箱与群发》本文将详细介绍如何使用SpringBoot框架结合WxJava开发工具包,实现文章上传到微信公众号草稿箱以及群发功能,... 目录一、项目环境准备1.1 开发环境1.2 微信公众号准备二、Spring Boot 项目搭建2.1 创建

Java中Integer128陷阱

《Java中Integer128陷阱》本文主要介绍了Java中Integer与int的区别及装箱拆箱机制,重点指出-128至127范围内的Integer值会复用缓存对象,导致==比较结果为true,下... 目录一、Integer和int的联系1.1 Integer和int的区别1.2 Integer和in

SpringSecurity整合redission序列化问题小结(最新整理)

《SpringSecurity整合redission序列化问题小结(最新整理)》文章详解SpringSecurity整合Redisson时的序列化问题,指出需排除官方Jackson依赖,通过自定义反序... 目录1. 前言2. Redission配置2.1 RedissonProperties2.2 Red

IntelliJ IDEA2025创建SpringBoot项目的实现步骤

《IntelliJIDEA2025创建SpringBoot项目的实现步骤》本文主要介绍了IntelliJIDEA2025创建SpringBoot项目的实现步骤,文中通过示例代码介绍的非常详细,对大家... 目录一、创建 Spring Boot 项目1. 新建项目2. 基础配置3. 选择依赖4. 生成项目5.

JSONArray在Java中的应用操作实例

《JSONArray在Java中的应用操作实例》JSONArray是org.json库用于处理JSON数组的类,可将Java对象(Map/List)转换为JSON格式,提供增删改查等操作,适用于前后端... 目录1. jsONArray定义与功能1.1 JSONArray概念阐释1.1.1 什么是JSONA

Java JDK1.8 安装和环境配置教程详解

《JavaJDK1.8安装和环境配置教程详解》文章简要介绍了JDK1.8的安装流程,包括官网下载对应系统版本、安装时选择非系统盘路径、配置JAVA_HOME、CLASSPATH和Path环境变量,... 目录1.下载JDK2.安装JDK3.配置环境变量4.检验JDK官网下载地址:Java Downloads

Spring boot整合dubbo+zookeeper的详细过程

《Springboot整合dubbo+zookeeper的详细过程》本文讲解SpringBoot整合Dubbo与Zookeeper实现API、Provider、Consumer模式,包含依赖配置、... 目录Spring boot整合dubbo+zookeeper1.创建父工程2.父工程引入依赖3.创建ap