当前位置: 首页 > ai >正文

week4-[字符数组]字符统计

week4-[字符数组]字符统计

题目描述

给定一个仅包含英文字母、数字字符和标点符号(逗号’,‘,句号’.‘,感叹号’!‘,问号’?‘,分号’;')的字符串 SSS。请求出 SSS 中大写字母、小写字母、数字字符和标点符号分别有多少个。

输入格式

输入一行,为一个字符串 SSS

输出格式

输出一行,包括4个整数,分别表示 SSS 中大写字母、小写字母、数字字符和标点符号分别有多少个

样例 #1

样例输入 #1

HelloWorld.

样例输出 #1

2 8 0 1

样例 #2

样例输入 #2

HappyNewYear2023!

样例输出 #2

3 9 4 1

样例 #3

样例输入 #3

Youcanfoolallpeoplesomeofthetimeorsomepeopleallthetime,youcannotfoolallthepeopleallthetime.

样例输出 #3

1 88 0 2

样例 #4

样例输入 #4

YE5,N0.

样例输出 #4

3 0 2 2

提示

数据范围

对于所有输入数据,SSS 的长度不超过2000。

这题就是一个分类计数问题。字符串里可能有:

  • 大写字母 'A' ~ 'Z'
  • 小写字母 'a' ~ 'z'
  • 数字字符 '0' ~ '9'
  • 标点符号 只可能是 , . ! ? ;

解题思路

  1. 读入一行字符串(可能有字母数字标点混合)。
  2. 遍历字符串的每一个字符:
    • 如果是大写字母 → cntUpper++
    • 如果是小写字母 → cntLower++
    • 如果是数字 → cntDigit++
    • 如果是标点(逗号、句号、感叹号、问号、分号) → cntPunc++
  3. 最后输出四个数。

C++参考代码

#include <bits/stdc++.h>
using namespace std;int main() {string S;getline(cin, S);  // 读取整行int cntUpper = 0, cntLower = 0, cntDigit = 0, cntPunc = 0;for (char c : S) {if (c >= 'A' && c <= 'Z') cntUpper++;else if (c >= 'a' && c <= 'z') cntLower++;else if (c >= '0' && c <= '9') cntDigit++;else if (c == ',' || c == '.' || c == '!' || c == '?' || c == ';')cntPunc++;}cout << cntUpper << " " << cntLower << " " << cntDigit << " " << cntPunc << "\n";return 0;
}

✅ 时间复杂度:O(n) (n ≤ 2000,非常小)
✅ 空间复杂度:O(1)

http://www.xdnf.cn/news/18512.html

相关文章:

  • 详细介绍将 AList 搭建 WebDav 添加到 PotPlayer 专辑 的方法
  • 基于Python与Tkinter的校园点餐系统设计与实现
  • 单片机的输出模式推挽和开漏如何选择呢?
  • [新启航]白光干涉仪与激光干涉仪的区别及应用解析
  • 【typenum】 24 去除尾部零的特性(private.rs片段)
  • MERGE 语句在 Delta Lake 中的原子更新原理
  • nodejs 集成mongodb实现增删改查
  • Kubernetes相关问题集(四)
  • 什么是正态分布
  • B.30.01.1-Java并发编程及电商场景应用
  • Socket 编程预备
  • 软件测试从入门到精通:通用知识点+APP专项实战
  • 使用Screenpipe+本地大模型实现私人助手Agent
  • 某电器5G智慧工厂网络建设全解析
  • Linux学习:信号的保存
  • TypeReference 泛型的使用场景及具体使用流程
  • GEO优化服务商:AI时代数字经济的新引擎——解码行业发展与技术创新实践
  • 【Spring Boot】集成Redis超详细指南 Redis在Spring Boot中的应用场景
  • kubernetes-dashboard使用http不登录
  • 【卷积神经网络详解与实例】1——计算机中的图像原理
  • 卓伊凡的开源战略与PHP-SG16加密技术深度解析-sg加密技术详解-卓伊凡
  • pixijs基础学习
  • pyecharts可视化图表-map:从入门到精通
  • 【手撕JAVA多线程:2.线程安全】 2.1.JVM层面的线程安全保证
  • C++算法·进制转换
  • DeepSeek V3.1深度解析:一个模型两种思维,迈向Agent时代的第一步!
  • 并查集详解
  • 基于Python的农作物病虫害防治网站 Python+Django+Vue.js
  • 说说你对Integer缓存的理解?
  • 文献阅读笔记【物理信息机器学习】:Physics-informed machine learning