蓝桥杯C/C++程序设计——单词分析

news2025/3/1 20:36:12

题目描述

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

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

输入描述

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

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

输出描述

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

第二行包含一个整数,表示出现得最多的那个字母在单词中出现的次数。

输入输出样例

示例 1

输入

lanqiao

输出

a
2

示例 2

输入

longlonglongistoolong

输出

o
6

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 256M

总通过次数: 67945  |  总提交次数: 78526  |  通过率: 86.5%

难度: 中等   标签: 2020, 字符串, 暴力, 省赛

解题思路:

#include<iostream>
#include<string>
using namespace std;
int main()
{
  char s[1001],b;
  cin>>s;
  int a[26]={0},max=0;
  for(int i=0;s[i]!='\0';i++)
  {
     a[s[i]-'a']++;
  }
  for(int i=0;i<26;i++)
  {
    if(max<a[i])
    {
      max=a[i];
      b='a'+i;
    }
  }
  cout<<b<<endl<<max;
  return 0;
}

 

 注意事项:

        关注字符串的输入、输输出,定义字符串,并且学会使用 a[s[i]-'a']++;记录26个英文字母的个数,使用b='a'+i;将数字转换为对应的字母。还要掌握遍历字符串的方法;

  1. 输入部分:获取用户输入的字符串

    char s[1001], b;
    cin>>s;
    

    这部分代码用于获取输入的字符串。

  2. 统计字母出现次数:

    int a[26] = {0}, max = 0;
    for(int i = 0; s[i] != '\0'; i++)
    {
        a[s[i]-'a']++;
    }
    

    这部分代码通过循环遍历字符串中的每个字符,将每个字符转换为对应的(小写)字母的索引值,并将相应的计数器a[]进行加一操作。

  3. 找出出现次数最多的字母:

    for(int i = 0; i < 26; i++)
    {
        if(max < a[i])
        {
            max = a[i];
            b = 'a' + i;
        }
    }
    

    这部分代码遍历a[]数组,找到出现次数最多的字母,并将其存储在变量b中。

  4. 输出结果:

    cout<<b<<endl<<max;
    

    这部分代码输出出现次数最多的字母b以及其出现次数max。

 遍历字符串的方法;

在 C++ 中,你可以使用不同的方法来遍历字符串。以下是一些常见的方法:

  1. 使用下标访问字符:
#include <iostream>
#include <string>
using namespace std;

int main() {
    string str = "Hello";

    for (int i = 0; i < str.length(); i++) {
        cout << str[i] << " ";
    }
    cout << endl;

    return 0;
}

 

for(int i=0;s[i]!='\0';i++)
  {
     a[s[i]-'a']++;
  }

  1. 使用迭代器:
#include <iostream>
#include <string>
using namespace std;

int main() {
    string str = "World";

    for (auto it = str.begin(); it != str.end(); it++) {
        cout << *it << " ";
    }
    cout << endl;

    return 0;
}

  1. 使用 range-based for 循环(C++11 及以上版本):
#include <iostream>
#include <string>
using namespace std;

int main() {
    string str = "WeTab";

    for (char ch : str) {
        cout << ch << " ";
    }
    cout << endl;

    return 0;
}

无论你选择哪种方法,遍历字符串的基本原理都是一样的:逐个访问字符串中的字符,并对其进行处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1346549.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python魔法方法之__getattr__和getattribute

在Python中有这两个魔法方法容易让人混淆&#xff1a;__getattr__和getattribute。通常我们会定义__getattr__而从来不会定义getattribute&#xff0c;下面我们来看看这两个的区别。 __getattr__魔法方法 class MyClass:def __init__(self, x):self.x xdef __getattr__(self, …

HTML标签基础入门

HTML 基本语法概述标签关系HTML基础结构HTML常用标签标题标签示例 段落和换行标签示例 文本格式化标签示例 div和span标签示例 图像标签和路径示例 超链接标签示例 注释 ctrl/特殊字符示例 表格标签 表头单元格标签表格属性示例 合并单元格示例 列表标签无序列表有序列表自定义…

SpringBoot集成支付宝,看这一篇就够了。

前 言 在开始集成支付宝支付之前&#xff0c;我们需要准备一个支付宝商家账户&#xff0c;如果是个人开发者&#xff0c;可以通过注册公司或者让有公司资质的单位进行授权&#xff0c;后续在集成相关API的时候需要提供这些信息。 下面我以电脑网页端在线支付为例&#xff0c;介…

Linux系统使用yum安装MySQL

部署MySQL数据库有多种部署方式&#xff0c;常用的部署方式就有三种&#xff1a;yum安装、rpm安装以及编译安装。每一种安装方式都有自己的优势&#xff0c;那么企业当中通常情况下采用的是rpm和二进制安装的方式。 MySQL官网下载地址 Mysql 5.7的主要特性 更好的性能&#xf…

费曼学习法应用:谈自私和教育的引导

今天这个还是来源于我和九迁的对话&#xff0c;起因是中午吃饭的时候&#xff0c;九迁在学校与班主任老师和数学老师对话中带来的思考。 先听音频&#xff1a; 对话内容&#xff08;以下内容可以边听边看&#xff0c;属于语音转换过来的文字&#xff0c;最后有个总结&#xff0…

中文字符占用字节即相关原理(实现中文(中英混合)字符串的反转)

如有不对欢迎指正。 目录 一.ASCLL字符和中文字符 1.使用无符号数表示的原因(对于中文字符)&#xff1a; 2.但是并不是所有情况都是用无符号数(以下目前只是猜测,如有问题欢迎指正) &#xff1a; 1. 什么时候使用无符号数表示: 2. 不需要使用的情况&#xff1a; …

46、激活函数 - Relu 激活

本节介绍一个在神经网络中非常常见的激活函数 - Relu 激活函数。 什么是ReLU激活函数 ReLU 英文名为 Rectified Linear Unit,又称修正线性单元,是一种简单但很有效的激活函数,它的定义如下: 即当输入 x 大于零时,输出等于他自己;当输入小于等于零时,输出为零,下面是re…

2023年成都市中等职业学校学生技能大赛“网络搭建及应用”赛项竞赛样卷

2023年成都市中等职业学校学生技能大赛 “网络搭建及应用”赛项竞赛样卷 &#xff08;总分1000分&#xff09; 目录 2023年成都市中等职业学校学生技能大赛 “网络搭建及应用”赛项竞赛样卷 网络建设与调试项目&#xff08;500分&#xff09; 服务器搭建与运维项目&#xff08;…

2023年度业务风险报告:四个新风险趋势

目录 倒票的黄牛愈加疯狂 暴增的恶意网络爬虫 愈加猖獗的羊毛党 层出不穷的新风险 业务风险呈现四个趋势 防御云业务安全情报中心“2023年业务风险数据”统计显示&#xff0c;恶意爬虫风险最多&#xff0c;占总数的37.8%&#xff1b;其次是虚假账号注册&#xff0c;占18.79%&am…

负载均衡之LVS

LVS LVS 原理 IPVS LVS 的 IP 负载均衡技术是通过 IPVS 模块来实现的&#xff0c;IPVS 是 LVS 集群系统的核心软件&#xff0c;它的主要作用是&#xff1a;安装在 Director Server 上&#xff0c;同时在 Director Server 上虚拟出一个 IP 地址&#xff0c;用户必须通过这个虚…

【web安全】短信等各类验证码的绕过思路整理

前言 本文是对一些验证码可能出现的问题的总结。 验证码的种类分析 首先验证码有两种&#xff1a; 1.短信验证码&#xff0c;这种通常出现在一些登录&#xff0c;修改绑定信息等位置处。 2.人机验证码&#xff0c;这种一般是用来防止机器操作和密码爆破的&#xff0c;通常…

每日一练(编程题-C/C++)

目录 CSDN每日一练1. 2023/2/27- 一维数组的最大子数组和(类型&#xff1a;数组 难度&#xff1a;中等)2. 2023/4/7 - 小艺照镜子(类型&#xff1a;字符串 难度&#xff1a;困难)3. 2023/4/14 - 最近的回文数(难度&#xff1a;中等)4. 2023/2/1-蛇形矩阵(难度&#xff1a;困难)…

数据采集来源有哪些?怎么做?

数据采集 数据采集&#xff0c;又称数据获取&#xff0c;是指从传感器和其他待测设备等模拟和数字被测单元中自动采集非电量或者电量信号&#xff0c;送到上机中进行分析、处理。 ✦ 一、电商数据采集主要来源 1、互联网公开数据 互联网是数据采集的主要来源之一&#xff0c…

kivy开发一个登陆界面

Kivy Kivy是一个用于开发跨平台移动应用&#xff08;如Android和iOS&#xff09;以及桌面应用&#xff08;如Windows、Linux和macOS&#xff09;的Python框架。它采用开源许可证&#xff08;MIT许可证&#xff09;&#xff0c;提供了丰富的图形界面组件和工具&#xff0c;以便…

Android Studio如何查找和替换

目录 前言 一、概述 二、总结 三、更多资源 前言 在Android Studio中&#xff0c;查找和替换是非常常见的操作&#xff0c;它可以帮助我们快速地定位和修改代码中的错误或不合适的内容。本文将介绍如何在Android Studio中进行查找和替换操作&#xff0c;包括基本的查找和替…

css 设置鼠标覆盖显示菜单

鼠标覆盖到“全部分类”效果如下 鼠标放到“精品推荐”效果如下 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"&g…

Linux网络编程学习心得.2

1.连接服务器 连接服务器 #include <sys/socket.h> int connect(intsockfd , const struct sockaddr *addr, socklen_t addrlen); 功能: 连接服务器 sockfd: socket套接字 addr: ipv4套接字结构体的地址 addrlen: ipv4套接字结构体的长度 2.tcp服务器通信流程 监…

C++初阶——基础知识(函数重载与引用)

目录 1.命名冲突 2.命名空间 3.缺省参数 4.函数重载 1.函数重载的特点包括&#xff1a; 2.函数重载的好处包括&#xff1a; 3.引用 引用的特点包括 引用的主要用途包括 引用和指针 引用 指针 类域 命名空间域 局部域 全局域 第一个关键字 命名冲突 同一个项目之间冲…

8天狂收6000+⭐️,可商用的开源Stream Diffusion

加州大学伯克利分校、东洋大学、东京工业大学、麻省理工学院和筑波大学等研究人员&#xff0c;联合开源了一款创新性实时交互图像生成框架——Stream Diffusion。 Stream Diffusion的技术创新点在于&#xff0c;将传统的顺序去噪变成流批处理去噪&#xff0c;消除了漫长的等待…

嵌入式学习路线

嵌入式系统是一种将软件和硬件紧密结合的技术&#xff0c;首先我们要认识到&#xff0c;无论我们是专注于软件开发还是硬件开发&#xff0c;最终的目标都是为了更好的工作和职业发展。 根据企业的规模和需求&#xff0c;大公司更倾向于将职责分得更细&#xff0c;例如软件分为…