精华内容
下载资源
问答
  • 蓝桥杯 单词分析

    2021-03-29 16:57:46
    蓝桥杯 单词分析 题目要求:小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组成,有些单词很长,远远超过正常英文单词的长度。 小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,...

    蓝桥杯 单词分析

    题目要求:小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组成,有些单词很长,远远超过正常英文单词的长度。
    小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得最多来分辨单词。
    现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这个字母出现的次数。

    【输入格式】
    输入一行包含一个单词,单词只由小写英文字母组成。

    【输出格式】
    输出两行,第一行包含一个英文字母,表示单词中出现得最多的字母是哪个。
    如果有多个字母出现的次数相等,输出字典序最小的那个。
    第二行包含一个整数,表示出现得最多的那个字母在单词中出现的次数。

    【样例输入】
    lanqiao

    【样例输出】
    a
    2

    【样例输入】
    longlonglongistoolong

    【样例输出】
    o
    6

    【评测用例规模与约定】
    对于所有的评测用例,输入的单词长度不超过 1000。

    思路解析:
    我们可以创建两个数组,一个数组A放的是每个字母,另一个数组B放的就是每个字母出现的次数

    首先我们解析一下数组B:
    我们可以这样理解:我们创建一个长度为26的数组,其中索引就是每个字母对应的先后顺序,例如我们都知道字母都是从a b c d e f…向后排列,那么我们可以按照他们顺序分别对应一个数字就是 0 1 2 3 4 5…,数字就是我们需要的索引,通过数字对应26个字母,那么每个索引所放的值,就是该字母出现的次数,
    那么我们如何获得数字呢,可以通过与‘a’相减得到,我们都知道a对应的数字为97,那么可以b对应的数字就是98,c对应的数字就是99,以此往后排序…,只要碰见相同的数字,就在该索引的对应的数值加1,

    那么最后我们可以得到一个关于每个字母次数的数组,其中索引是对应的字母,索引对应的数值就是该字母出现的次数,然后我们可以将出现次数最多的字母的索引+‘a’,进行强制类型转换为该字母
    举例:假如数字5,的次数最多,那么最后输出的就是System.out.println((char)(5+‘a’));输出的结果为f,

    数组B不需要解释,感觉很容易理解,就是一个装样例的数组,将每个字母都装入该数组里面,解释完以后.

    那么代码如下:

    public class App_38 {
        public static void main(String[] args) {
            Scanner scan = new Scanner(System.in);
            String s= scan.next();
            //将输入的字符串变成数组的形式
            char[] cc =s.toCharArray();
            int[] res = new int[26];//表示26个字母
            //a的值为97,减完之后恰好是从索引0开始,直接计数
            //0对应的为a,1对应的为b,2对应的c,3对应的是d
            //‘a’也可直接换成97
            for(char c : cc){
                res[c-97]++;
            }
            
            //key表示索引,对应的字母
            //value表示该字母出现的次数
            int key = 0;
            int value = 0;
            //通过比较找到出现次数最多的数字
            for(int i = 0;i<res.length;i++){
                if(res[i]>value){
                    value  =res[i];
                    key =i;
                }
            }
            System.out.println((char)(key+'a')+"\n"+value);
            scan.close();
        }
    }
    
    展开全文
  • 蓝桥杯 单词分析 java

    2021-04-09 00:40:54
    思路:我们输入一个字符串之后,如果重复了,我们该怎么记录,这是很重要的问题。我的思路是把输入的字符串放到StringBuilder创建的容器当中。...public class 单词分析 { public static void main(String[].

    xiaoguo

    思路:我们输入一个字符串之后,如果重复了,我们该怎么记录,这是很重要的问题。我的思路是把输入的字符串放到StringBuilder创建的容器当中。用,但是又没有直接匹配的方法,于是想到了ACSLL值,我们定义一个数组,比如 a-'a’就是0,通过下标让数组中对应的值加1,然后再通过比较数组中的数来确定出现次数最多的元素和出现的次数。

    代码:

    import java.util.Scanner;
    
    public class 单词分析 {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            String ss;
            StringBuilder builder = new StringBuilder();
            ss = sc.next();
            builder.append(ss);
            int[] arr= new int[26];
            for (int i=0;i<builder.length();i++){
                arr[i]=0;
                arr[builder.charAt(i)-'a']++;
            };
            int max = 0;int res = 0;
            for (int k=0;k<arr.length;k++){
                if(max<arr[k]){
                    max = arr[k];
                    res = k;
                }
    
            }
            System.out.println((char) (res+'a'));
            System.out.println(max);
        }
    }
    
    展开全文
  • 蓝桥杯 单词分析 C++

    2021-03-22 15:58:52
    小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得最多来分辨单词。 现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这个字母出现的次数。 输入格式 ...

    题目:
    资源限制
    时间限制:1.0s 内存限制:256.0MB

    问题描述
    小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得最多来分辨单词。

    现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这个字母出现的次数。

    输入格式
    输入一行包含一个单词,单词只由小写英文字母组成。

    样例输入

    lanqiao
    

    样例输出

    a
    2
    

    评测用例规模与约定
    对于所有的评测用例,输入的单词长度不超过 1000。

    这里直接使用暴力遍历。

    代码1:

    #include <iostream>
    #include <string.h>
    using namespace std;
    
    char m[1005];//用于存放字符 
    int n[1005];//用于记录个数 
    char c;//用于存放最多的那个字母 
    bool b[1005];//判断是否存在 
    string str;
    
    int main()
    {
    	int max = 0;
    	cin>>str;
    	memset(b,false,sizeof(b));
    	//遍历整个字符串 
    	for(int i=0;i<str.size();i++)
    	{
    		while(b[i])//如果已经存在,i++往后继续遍历
    		{
    			i++;
    		}
    		m[i] = str[i];//开始i=0,直接把字符串的第一个字符赋值给m[0]
    		b[i] = true; //标记已经存在
    		n[i] = 1;//记录改字母的个数
    		for(int j = i+1;j<str.size();j++)//从i+1进行遍历
    		{
    			if(m[i] == str[j])
    			{
    				n[i]++;
    				b[j] = true;
    			}
    		}
    		if(max <= n[i])//更换字母最多的那一个及个数
    		{
    			if(max == n[i])//相等的时候
    			{
    				if((c - 'a') <= (m[i] - 'a'))//看谁在字母表里靠前
    				{
    					c = c;
    				}
    				else
    				{
    					c = m[i]; 
    				}
    			}
    			else
    			{
    				max = n[i];
    				c = m[i];
    			} 
    		} 
    	}
    	
    	cout<<c<<endl;
    	cout<<max<<endl;
    	
    	return 0;
    }
    

    结果:
    在这里插入图片描述
    代码2:

    #include <iostream>
    #include <string.h>
    
    using namespace std;
    #define MAX 1010
    
    int s[MAX];//存放字母个数 
    
    int main(){ 
    	string str;
    	cin >> str;
    	int n = str.size();
    	for(int i = 0;i<n;i++){
    		int a = str[i] - 'a';
    		s[a]++; 
    	}
    	int max = 0;//用于存放最大值 
    	char ch;//用于存放最大值的对应的字母 
    	for(int i = 0;i<MAX;i++){
    		if(max <= s[i]){
    			if(max < s[i]){
    				max = s[i];
    				ch = (char)(i + 'a');
    			}
    			else if(max == s[i]){//因为数组s中已经是按照字典序排列。所以两个字母出现的数量相同时,排在前面的就是结果 
    				max = s[i];
    				ch = ch;
    			}
    
    		}
    	}
    	
    	cout<<ch<<endl;
    	cout<<max<<endl;
    		
    	return 0;
    }
    

    结果:
    在这里插入图片描述

    展开全文
  • 文章目录一、题目二、思路题解三、代码 一、题目 二、思路题解 我是使用逆向思维求解,即采用26个小写字母与所输入字符串进行比较,然后使用计数的数组进行计数,一直遍历到26的小写字母都遍历完成。...

    一、题目

    在这里插入图片描述

    二、思路题解

    我是使用逆向思维求解,即采用26个小写字母与所输入字符串进行比较,然后使用计数的数组进行计数,一直遍历到26的小写字母都遍历完成。
    然后对计数的数组进行遍历比较,找出最大值和最大值对应的下标,因为计数数组的下标和26个小写字母的下标是一一对应的。

    三、代码

    import java.util.*;
    public class Main {
    	
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		String str = sc.next();
    		char[] ch = str.toCharArray(); 
    		int[] jishu = new int[26];
    		char[] c1 = new char[26];
    		for(int i=0;i<26;i++) {
    			c1[i] = (char) ('a' + i);
    		}
    		for(int i=0;i<26;i++) {
    			for(int j=0;j<ch.length;j++) {
    				if(c1[i]==ch[j]) {
    					jishu[i]++;
    				}
    			}
    		}
    		int max = 0;
    		int j = 0;
    		for(int i=0;i<26;i++) {
    			if(max<jishu[i]) {
    				max = jishu[i];
    				j = i;
    			}
    		}
    		System.out.println(c1[j]);
    		System.out.println(max);
    	}
    }
    
    展开全文
  • 单词分析 (686) (1) 题目描述 小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组 成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词...
  • 蓝桥杯单词分析
  • python蓝桥杯真题 单词分析 题目描述 代码及解析 运行结果
  • 蓝桥杯单词分析

    2021-04-05 00:27:03
    蓝桥杯单词分析 小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组成,有些单词很长,远远超过正常英文单词的长度。 小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据...
  • 蓝桥杯python单词分析

    2021-04-16 23:03:15
    历届试题PREV-65 单词分析 问题描述 小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些...
  • 蓝桥杯——单词分析

    千次阅读 2020-10-17 20:57:42
    他准备不再完全记忆这些单词,而是根据单词中哪个字母出现的最多来分辨单词。 请你帮助小蓝,给了一些单词后,帮助他找到出现最多的字母和这个字母出现的次数。 输入格式: 输入一行包含一个单词单词只有小写英文...
  • 蓝桥杯-单词分析

    2021-03-18 23:50:27
    小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得最多来分辨单词。 现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这个字母出现的次数。 输入格式 ...
  • 单词分析 题目描述 小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组 成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据...
  • 小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得最多来分辨单词。 现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这个字母出现的次数。 输入格式 ...
  • python 单词分析 word = input() dicta={} lista = [] equality = [] for w in word: c = word.count(w) dicta[w] = c lista = sorted(dicta.items(),key=lambda x:x[1], reverse = True) temp = lista[0][1] for ...
  • 小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组成,有些单词很长,远远超过正常英文单词的长度。 小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现...
  • 试题 G: 单词分析 时间限制: 1.0s 内存限制: 512.0MB 本题总分:20 分 【问题描述】 小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组成,有些单词很长,远远超过正常英文单词的长度。 小蓝学了很...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 151
精华内容 60
关键字:

蓝桥杯单词分析