zoukankan      html  css  js  c++  java
  • 洛谷P1125——笨小猴(简易模拟)

    https://www.luogu.org/problem/show?pid=1125

    题目描述

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

    这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质数,那么笨小猴就认为这是个Lucky Word,这样的单词很可能就是正确的答案。

    输入输出格式

    输入格式:

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

    输出格式:

    输出文件word.out共两行,第一行是一个字符串,假设输入的的单词是Lucky Word,那么输出“Lucky Word”,否则输出“No Answer”;

    第二行是一个整数,如果输入单词是Lucky Word,输出maxn-minn的值,否则输出0。

    输入输出样例

    输入样例#1:
    error
    输出样例#1:
    Lucky Word
    2
    输入样例#2:
    olympic
    输出样例#2:
    No Answer
    0

    说明

    【输入输出样例1解释】

    单词error中出现最多的字母r出现了3次,出现次数最少的字母出现了1次,3-1=2,2是质数。

    【输入输出样例2解释】

    单词olympic中出现最多的字母i出现了2次,出现次数最少的字母出现了1次,2-1=1,1不是质数。

    非常简单的水题,直接对照过程模拟即可,用数组对字符串中出现的字母进行计数标记,由于n的范围小于100,时间复杂度为O(1),最差的情况下程序也只会计算100+26+10次,代码五分钟搞定。

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int isprime(int n)
     4 {
     5     if(n==1|n==0) return 0;
     6     else 
     7     {
     8         for(int i=2;i*i<=n;i++)
     9         {
    10             if(n%i==0) return 0;
    11         }
    12     }
    13     return 1;
    14 }
    15 int main()
    16 {
    17     int alp[30];
    18     char str[150];
    19     cin>>str;
    20     int len=strlen(str);
    21     memset(alp,0,sizeof(alp));
    22     for(int i=0;i<len;i++)
    23     {
    24         alp[str[i]-'a'+1]++;
    25     }
    26     int maxn=0,minn=999;
    27     for(int i=1;i<=26;i++)
    28     {
    29         if(alp[i]>maxn) maxn=alp[i];
    30         if(alp[i]<minn&&alp[i]!=0) minn=alp[i];
    31     }
    32     int num=maxn-minn;
    33     if(isprime(num)==1) 
    34     {
    35         cout<<"Lucky Word"<<endl<<num<<endl;
    36     }
    37     else
    38     {
    39         cout<<"No Answer"<<endl;
    40         cout<<"0"<<endl;
    41      } 
    42     return 0;
    43 }
  • 相关阅读:
    LeetCode 24. Swap Nodes in Pairs (两两交换链表中的节点)
    LeetCode 1041. Robot Bounded In Circle (困于环中的机器人)
    LeetCode 1037. Valid Boomerang (有效的回旋镖)
    LeetCode 1108. Defanging an IP Address (IP 地址无效化)
    LeetCode 704. Binary Search (二分查找)
    LeetCode 744. Find Smallest Letter Greater Than Target (寻找比目标字母大的最小字母)
    LeetCode 852. Peak Index in a Mountain Array (山脉数组的峰顶索引)
    LeetCode 817. Linked List Components (链表组件)
    LeetCode 1019. Next Greater Node In Linked List (链表中的下一个更大节点)
    29. Divide Two Integers
  • 原文地址:https://www.cnblogs.com/YingZhixin/p/6498865.html
Copyright © 2011-2022 走看看