博客
关于我
P1125 [NOIP2008 提高组] 笨小猴 (Java)
阅读量:395 次
发布时间:2019-03-05

本文共 1634 字,大约阅读时间需要 5 分钟。

为了解决这个问题,我们需要判断给定的单词是否为“Lucky Word”,即单词中出现次数最多的字母和出现次数最少的字母出现次数的差值是否为质数。我们将通过统计各个字母的出现次数并检查差值是否为质数来实现这一点。

方法思路

  • 统计字母出现次数:我们使用一个长度为26的数组来统计每个字母的出现次数。
  • 找出最大值和最小值:遍历该数组找到出现次数最多(maxn)和出现次数最少(minn)的值。注意,字母未出现的位置会被认为是出现次数0。
  • 计算差值并检查是否为质数:计算maxn和minn的差值,检查该差值是否为质数。如果是,则单词为“Lucky Word”;否则,则输出“No Answer”。
  • 解决代码

    import java.util.Scanner;public class Main {    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        String s = sc.nextLine();        int[] counts = new int[26];        for (int i = 0; i < s.length(); i++) {            counts[s.charAt(i) - 'a']++;        }        int max = -1, min = 99999;        for (int i = 0; i < 26; i++) {            if (counts[i] > max) {                max = counts[i];            }            if (counts[i] < min) {                min = counts[i];            }        }        int difference = max - min;        boolean isPrime = false;        if (difference >= 2) {            isPrime = true;            for (int i = 2; i < difference; i++) {                if (difference % i == 0) {                    isPrime = false;                    break;                }            }        }        if (isPrime) {            System.out.println("Lucky Word");            System.out.println(difference);        } else {            System.out.println("No Answer");            System.out.println(0);        }    }}

    代码解释

  • 读取输入:使用Scanner读取输入的单词。
  • 统计字母出现次数:通过遍历单词的每个字符,更新计数器数组counts,记录每个字母的出现次数。
  • 初始化max和min:最大值初始化为-1,最小值初始化为99999,然后遍历计数器数组,找出实际的最大值和最小值。
  • 计算差值:计算max和min的差值,并检查该差值是否为质数。
  • 输出结果:如果差值为质数,输出“Lucky Word”和差值;否则,输出“No Answer”和0。
  • 这个方法确保了我们能够正确判断单词是否为“Lucky Word”,并高效地处理输入和统计操作。

    转载地址:http://sdtzz.baihongyu.com/

    你可能感兴趣的文章
    Android数据库
    查看>>
    HTML基础,块级元素/行内元素/行内块元素辨析【2分钟掌握】
    查看>>
    STM8 GPIO模式
    查看>>
    23种设计模式一:单例模式
    查看>>
    Qt中的析构函数
    查看>>
    三层框架+sql server数据库 实战教学-徐新帅-专题视频课程
    查看>>
    【单片机开发】智能小车工程(经验总结)
    查看>>
    【单片机开发】基于stm32的掌上游戏机设计 (项目规划)
    查看>>
    C++&&STL
    查看>>
    微信js-sdk使用简述(分享,扫码功能等)
    查看>>
    c++中ifstream及ofstream超详细说明
    查看>>
    web项目配置
    查看>>
    基于单片机简易信号误差分析设计-全套资料
    查看>>
    基于单片机简易脉搏测量仪系统设计-毕设课设资料
    查看>>
    Javascript中String支持使用正则表达式的四种方法
    查看>>
    Servlet2.5的增删改查功能分析与实现------删除功能(四)
    查看>>
    spring启动错误:Could not resolve placeholder
    查看>>
    invalid byte sequence for encoding
    查看>>
    技术美术面试问题整理
    查看>>
    ORB-SLAM2:LoopClosing线程学习随笔【李哈哈:看看总有收获篇】
    查看>>