蓝桥杯刷题-1

简介: 蓝桥杯刷题-1

文章目录

大家好,我是晓星航。今天为大家带来的是 蓝桥杯刷题 - 1 -单词分析 相关的讲解!😀

1.蓝桥杯官网

题库 - 蓝桥云课 (lanqiao.cn))

2.蓝桥杯题目进入界面 及 题目详情

3.题目解答过程及思路

我们先附上整段代码图

这里所包含的所有常量、变量和数组有:

s1 - 用来接受我们输入的字符串

a1[] - 用来存放我们26个字母对应出现的次数

a2 - 用来找到我们出现次数最多的字母所对应的数组下标

cnt - 用来找到每个输入字符在a1数组中对应的下标位置,并进行加加

i,j,k用来初始化for循环数组的循环次数

出现的函数有s1.charAt(j) 这里的函数意思为将s1字符串中的第j个位置的元素转化为相对应的ASCII(美国信息交换标准代码)的数值。

整体思路:初始化好每个元素后,我们通过三个for循环来解决题目。第一个for用来初始化数组的26个元素全部为0(虽然默认值已经为0,但是我们这样做会更加严谨)。第二个for用来解析s1输入的字符串中每一个字符在我们计数器数组a1[]中的位置,并在对应的字母位置进行加加,达到统计每一个字母出现次数的目的。第三个for是遍历我们的数组通过比较他们值的大小进行替换,直到遍历完数组找到出现次数最多的那个字母的下标,然后一直保留。最后就很简单了,我们直接打印出出现次数最多的字母(用(char)来强制转换 a2 + 97的意思为97对应a的ASCII码值加上他对应的字母位置,便为那个出现次数最多的字母的ASCII码,然后打印即可)和他的次数(直接打印我们第三个for循环中找到的a2在数字a1的值即为我们出现次数最多的字母的次数)即可。

4.运行结果图

5.解答代码展示

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        String s1 = scan.nextLine();
        int a2 = 0;
        int[] a1 = new int[26];//a1用来记录每个字母出现次数,初始值默认全为0
        for (int i = 0; i < a1.length; i++) {
          a1[i] = 0;
        }
        for (int j = 0; j < s1.length(); j++) {
          int cnt = s1.charAt(j) - 97;
          a1[cnt]++;
        }
        for (int k = 1; k < a1.length; k++) {
          if (a1[a2] < a1[k]) {
            a2 = k;
          }
        }
        System.out.println((char)(a2 + 97));//a2为出现次数最多那个字母所对应数组的下标
        System.out.println(a1[a2]);
        scan.close();
    }
}

6.ASCII表图例

感谢各位读者的阅读,本文章有任何错误都可以在评论区发表你们的意见,我会对文章进行改正的。如果本文章对你有帮助请动一动你们敏捷的小手点一点赞,你的每一次鼓励都是作者创作的动力哦!😘

目录
相关文章
|
6月前
|
测试技术
蓝桥杯刷题|02入门真题
蓝桥杯刷题|02入门真题
|
6月前
|
测试技术
蓝桥杯刷题|01入门真题
蓝桥杯刷题|01入门真题
|
6月前
|
测试技术
蓝桥杯刷题|03入门真题
蓝桥杯刷题|03入门真题
|
6月前
|
算法 Java C语言
蓝桥杯-03-蓝桥杯学习计划
蓝桥杯-03-蓝桥杯学习计划
|
机器学习/深度学习 人工智能 搜索推荐
|
机器学习/深度学习
蓝桥杯刷题(一)
蓝桥杯刷题
109 0
|
机器学习/深度学习
蓝桥杯真题练习
蓝桥杯真题练习
159 0
蓝桥杯真题计划(一)
蓝桥杯真题计划(一)
72 0