字符下标计数

下标计数

数组计数,即通过使用一个新的数组,对原来数组里面的项进行计数,统计原来数组中各项出现的次数,如下图所示:

1.png

数组计数可以方便快速地统计出一个各项都比较小的数组中,数值相同的数的个数。

 

数组计数常用代码:

2.png

 

   统计数组中0-9的个数 查看测评数据信息

输入n个10以内的正整数,统计其中0-9的个数。

输入格式

两行

第一行:一个整数n,1<=n<=100

第二行:n个整数,范围在[0,9]

输出格式

10行,每行两个数a,b,用空格隔开,a表示数字,b表示对应数字的个数

分别输出0-9每一个数字出现的次数

输入/输出例子1

输入:

5

2 4 6 2 5

输出:

0 0

1 0

2 2

3 0

4 1

5 1

6 1

7 0

8 0

9 0

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,a[99999],s[99999];
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    for(int i=1;i<=n;i++){
        if(a[i]==0)s[0]++;
        if(a[i]==1)s[1]++;
        if(a[i]==2)s[2]++;
        if(a[i]==3)s[3]++;
        if(a[i]==4)s[4]++;
        if(a[i]==5)s[5]++;
        if(a[i]==6)s[6]++;
        if(a[i]==7)s[7]++;
        if(a[i]==8)s[8]++;
        if(a[i]==9)s[9]++;       
    }
    for(int i=0;i<=9;i++){
        cout<<i<<" "<<s[i]<<endl;
    }
    return 0;
}

美人松的高度1 查看测评数据信息

又到过年了,狗熊岭的动物们都忙碌了起来,张灯结彩准备过年。李老板却要光头强砍一些百年美人松回去。现在光头强看到丛林里有N棵美人松,当然每棵松的高度是已知的。李老板要问光头强:高度为K的美人松有多少棵?

输入格式

第一行一个正整数N, 1<=N<=1000000。
第二行N个正整数,之间用一个空格隔开,表示N棵美人松的高度,1<=高度<=1000000。
第三行一个正整数K,表示询问高度为K的美人松有多少棵 。

输出格式

一行一个整数,表示对应高度为K的树的数量,如果没有则输出0

输入/输出例子1

输入:

5
3 4 5 2 3
3

输出:

2

#include<bits/stdc++.h>
using namespace std;
int a[1000000],n,m,s;
int main()
{
	scanf("%d",&n);
	for(int i=0;i<n;i++)
	scanf("%d",&a[i]);
	scanf("%d",&m);
	for(int i=0;i<n;i++)
	{
		if(a[i]==m)
		s++;
	}
	printf("%d",s);
	return 0;
 } 
美人松高度2 查看测评数据信息

又到过年了,狗熊岭的动物们都忙碌起来,张灯结彩准备过年。李老板却要光头强砍掉一些百年美人松回去。现在光头强看到丛林里有N颗美人松按照从矮到高排好了,当然每棵松的高度都是已知的。李老板要问光头强M次:每次询问高度为K的美人松的数量

输入格式

第一行,两个正整数N,M,1<=N<=10^6,1<=M<=10^3;
第二行,N个正整数,之间用一个空格隔开,表示N棵美人松的高度,1<=高度<=10000000
第三行M个正整数k,表示M个询问,每次询问高度为K的美人松的数量,1<=k<=1000。

输出格式

一行M个正整数,之间用一个空格隔开,分别表示对应每次询问高度为K的树的查询结果,如果存在,则高度为K的树的数量,不存在则输出0

输入/输出例子1

输入:

5 2

2 3 3 4 5

3 4

输出:

2 1

#include<bits/stdc++.h>
using namespace std;
int  a[10000001],n,m,k,x; 
int main()
{
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)
	{
	scanf("%d",&k);
	a[k]=a[k]+1;
	}
	for(int i=1;i<=m;i++)
	{
		scanf("%d",&x);
		printf("%d ",a[x]);
	}
	return 0;
 } 
校门外的树 查看测评数据信息

某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。

由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。

输入格式

第一行有两个整数L(1 ≤ L ≤ 10000)和 M(1 ≤ M ≤ 100),L代表马路的长度,M代表区域的数目,L和M之间用一个空格隔开。接下来的M行每行包含两个不同的整数,用一个空格隔开,表示一个区域的起始点和终止点的坐标。

对于20%的数据,区域之间没有重合的部分;对于其它的数据,区域之间有重合的情况。

输出格式

包括一行,这一行只包含一个整数,表示马路上剩余的树的数目。

输入/输出例子1

输入:

500 3
150 300
100 200
470 471

输出:

298

#include<cstdio>
using namespace std;
int a[10001],n,m,x,y,s=0;
int main()
{
	scanf("%d%d",&n,&m);
	for(int i=0;i<=n;i++) 
	a[i]=1;
	for(int i=1;i<=m;i++)
	{
		scanf("%d%d",&x,&y);
		for(int j=x;j<=y;j++) 
		a[j]=0;
	}
	for(int i=0;i<=n;i++)
	{
	if(a[i]==1) 
	s++;	
	}
	printf("%d",s);
	return 0;
}
统计字符个数 查看测评数据信息

要求输入一任意字符串,输出串中出现的小写字母及其出现次数,按照ASCII码由小到大排序输出

输入格式

一行,一个字符串

输出格式

每个出现的小写字母,以及其出现的次数作为单独的一行,中间用空格隔开。

输入/输出例子1

输入:

you are a student

输出:

a 2

d 1

e 2

n 1

o 1

r 1

s 1

t 2

u 2

y 1

#include<bits/stdc++.h>
using namespace std;
int s[26];
char s1[26];
int main(){
    string a;
    getline(cin,a);   
    for(int i=0;i<a.size();i++){
        if(a[i]=='a')s1[0]=a[i],s[0]++;
        if(a[i]=='b')s1[1]=a[i],s[1]++;    
        if(a[i]=='c')s1[2]=a[i],s[2]++;    
        if(a[i]=='d')s1[3]=a[i],s[3]++;    
        if(a[i]=='e')s1[4]=a[i],s[4]++;    
        if(a[i]=='f')s1[5]=a[i],s[5]++;    
        if(a[i]=='g')s1[6]=a[i],s[6]++;    
        if(a[i]=='h')s1[7]=a[i],s[7]++;    
        if(a[i]=='i')s1[8]=a[i],s[8]++;    
        if(a[i]=='j')s1[9]=a[i],s[9]++;    
        if(a[i]=='k')s1[10]=a[i],s[10]++;    
        if(a[i]=='l')s1[11]=a[i],s[11]++;    
        if(a[i]=='m')s1[12]=a[i],s[12]++;    
        if(a[i]=='n')s1[13]=a[i],s[13]++;    
        if(a[i]=='o')s1[14]=a[i],s[14]++;    
        if(a[i]=='p')s1[15]=a[i],s[15]++;    
        if(a[i]=='q')s1[16]=a[i],s[16]++;    
        if(a[i]=='r')s1[17]=a[i],s[17]++;    
        if(a[i]=='s')s1[18]=a[i],s[18]++;    
        if(a[i]=='t')s1[19]=a[i],s[19]++;    
        if(a[i]=='u')s1[20]=a[i],s[20]++;    
        if(a[i]=='v')s1[21]=a[i],s[21]++;    
        if(a[i]=='w')s1[22]=a[i],s[22]++;    
        if(a[i]=='x')s1[23]=a[i],s[23]++;    
        if(a[i]=='y')s1[24]=a[i],s[24]++;    
        if(a[i]=='z')s1[25]=a[i],s[25]++;    
    }
    for(int i=0;i<26;i++){
        if(s[i]!=0)cout<<s1[i]<<" "<<s[i]<<endl;
    }
    return 0;
}
统计字符个数2  查看测评数据信息

要求输入一任意字符串,输出串中出现的小写字母及其出现次数,字符输出顺序按照其在字符串中首次出现顺序排列

输入格式

一行,一个字符串

输出格式

按照其在字符串中首次出现顺序,输出每个出现的小写字母,以及其出现的次数作为单独的一行,中间用空格隔开。

输入/输出例子1

输入:

acbacc

输出:

a 2

c 3

b 1

#include<bits/stdc++.h>
using namespace std;
string s;
int a[26], b[26];
char x[26]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}; 
int main () {
getline(cin, s);
for(int i=0; i<s. size (); i++) {
if(s[i]>='a' &&s[i] <= ' z') {
a[(s[i]-'0')-49]++;
}
}
for(int i=0; i<s. size (); i++) {
if(a[(s[i]-'0')-49] != 0&&b[(s[i]-'0')-49] == 0) {
cout << x[(s[i]-'0')-49] << " " << a[(s[i]-'0')-49] << endl;
b[(s[i]-'0')-49]++;
}
}
return 0;
}
只出现一次的字符 查看测评数据信息

给你一个只包含小写字母的字符串;

请你判断是否存在只在字符串中出现过一次的字符;

如果存在,则输出满足条件的字符中,ASCII码最靠前的那个;

如果没有, 输出 no.

输入格式

共一行, 包含一个由小写字母构成的字符串;

数据保证字符串的长度不超过 100000.

输出格式

输出满足条件的第一个字符;

如果没有, 则输出 no.

输入/输出例子1

输入:

you are a student

输出:

d

样例解释

d只出现一次,并且在出现一次的字母中,ASCII码最小

#include<bits/stdc++.h>
using namespace std;
string s;int a[27];
int main(){
getline(cin,s);
for(int i=0;i<s.size();i++)
if(s[i]>='a'&&s[i] <= 'z')
a[s[i]-'a']++;
for(int i=0;i<26;i++)
if(a[i] == 1){
cout << char('a'+i);
return 0;
}
cout << "no";
return 0;
}
统计字符个数3 查看测评数据信息

输入一串字符。对字符中的小写字母进行统计,并按照统计个数由多到少输出,如果统计的个数相同,则按照ASCII码由小到大排序输出 。如果有其他字符,则对这些字符不用进行统计。

输入格式

一行,一个字符串

字符串长度小于1000

输出格式

按照题目要求的顺序输出字符

输入/输出例子1

输入:

aadddccddc

输出:

dca

#include<bits/stdc++.h>
using namespace std;
string s;
int a[30];
int main (){

getline(cin, s);
for(int i=0;i<s.size(); i++)
if(s[i]>='a'&&s[i]<= 'z')
a[s[i]-'a'+1]++;
for(int i=1000;i>=1;i -- )
for(int j=1;j <= 26; j++)
if(a[j]==i)
cout << char('a'+j-1);

return 0;
   }

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录算法训练营DAY10 | 栈与队列 (1)

理论基础及Java实现参考文章&#xff1a;栈和队列 一、LeetCode 232 用栈实现队列 题目链接&#xff1a;232.用栈实现队列https://leetcode.cn/problems/implement-queue-using-stacks/ 思路&#xff1a;使用两个栈stack1、stack2实现队列&#xff1b;stack1用来存储入队元素&…

【Servlet】——Servlet API 详解

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【Servlet】 本专栏旨在分享学习Servlet的一点学习心得&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 一、HttpServlet二、Htt…

图像处理之《可逆重缩放网络及其扩展》论文精读

一、文章摘要 图像重缩放是一种常用的双向操作&#xff0c;它首先将高分辨率图像缩小以适应各种显示器或存储和带宽友好&#xff0c;然后将相应的低分辨率图像放大以恢复原始分辨率或放大图像中的细节。然而&#xff0c;非单射下采样映射丢弃了高频内容&#xff0c;导致逆恢复…

Flink的SQL开发

概叙 Flink有关FlinkSQL的官网: https://nightlies.apache.org/flink/flink-docs-release-1.13/zh/docs/dev/table/sql/overview/ 阿里云有关FlinkSQL的官网: https://help.aliyun.com/zh/flink/developer-reference/overview-5?spma2c4g.11186623.0.0.3f55bbc6H3LVyo Ta…

Mac 下文件编码转换的方法

Windows文件传输到Mac,在Windows上打开是可以看的,但是在Mac上打开是乱码,这是因为Windows默认是GBK编码,而Mac使用的是UTF-8编码,这时候需要对文件编码进行转换,以方便在Mac上查看和使用 iconv macOS 系统中&#xff0c;iconv 命令是一个用于转换文件或文本流的字符编码的实用…

Django模型(八)

一、修改数据 先获取对象,通过对象属性更新数据,再保存 (更新单一数据)通过QuerySet的update函数更新数据 (更新多条数据) #单条记录修改 save c = Cook.objects.get(pk=1) c.name = 安妮 c.save()# 更新多个值 update Cook.objects.filter(sect=粤菜).update(level=5)1.1、…

C# 根据USB设备VID和PID 获取设备总线已报告设备描述

总线已报告设备描述 DEVPKEY_Device_BusReportedDeviceDesc 模式 winform 语言 c# using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Window…

IntelliJ IDEA 2023和Java的JDK详细安装教程

一、软件下载 网盘链接&#xff1a;IntelliJ IDEA 2023 提取码&#xff1a;2syx 二、详细安装教程 1.鼠标右击【JetBrains2023】压缩包&#xff08;win11及以上系统需先点击“显示更多选项”&#xff09;选择【解压到 JetBrains2023】&#xff1b;打开解压后的文件夹&#x…

银行数据仓库体系实践(15)--数据应用之巴塞尔新资本协议

巴塞尔新资本协议介绍 在银行管理中经常会听到巴3、新资本协议等专用词&#xff0c;那这都是指《巴塞尔资本协议》&#xff0c;全称《关于统一国际银行资本衡量和资本标准的协议》。新资本协议的五大目标是&#xff1a;促进金融体系的安全性和稳健性&#xff08;保持总体资本水…

c++阶梯之auto关键字与范围for

auto关键字&#xff08;c11&#xff09; 1. auto关键字的诞生背景 随着程序的逐渐复杂&#xff0c;程序代码中用到的类型也越来越复杂。譬如&#xff1a; 类型难以拼写&#xff1b;含义不明确容易出错。 比如下面一段代码&#xff1a; #include <string> #include &…

(学习日记)2024.02.01:引用变量 / 默认实参 / 一元作用域运算符 / 函数重载

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…

踩坑STM32CubeMX生成Makefile工程无法使用printf(“%f“)

过去一年偶有接触STM32开发时都是使用STM32CubeMX生成Makefile的工程&#xff0c;具体开发环境见配置Clion用于STM32开发&#xff08;Makefile&#xff09;&#xff0c;但没想到今天在使用printf打印输出浮点数时无法正常输出&#xff0c;不仅printf无法使用&#xff0c;其他涉…

MongoDB从入门到实战之MongoDB快速入门

前言 上一章节主要概述了MongoDB的优劣势、应用场景和发展史。这一章节将快速的概述一下MongoDB的基本概念&#xff0c;带领大家快速入门MongoDB这个文档型的NoSQL数据库。 MongoDB从入门到实战的相关教程 MongoDB从入门到实战之MongoDB简介&#x1f449; MongoDB从入门到实战…

白皮书发布,石油石化数字孪生加速

近日&#xff0c;《数字石化 孪生智造——石油石化数字孪生白皮书》发布。白皮书聚焦石油石化行业发展机遇&#xff0c;剖析数字孪生技术在行业中的案例实践与应用场景&#xff0c;展望石油石化企业未来孪生发展新态势。 当前&#xff0c;国家大力推动减污降碳协同增效&#x…

【IM】长连接网关设计探索(一)

目录 1.长连接网关的必要性2. 设计目标2.1 技术挑战2.2 技术目标 3. 方案选型3.1 网关IP地址的选择3.1.1 使用httpDNS服务3.1.2 自建http server作为IP config server3.1.3 最佳方案 3.2 高并发收发设计3.2.1 C10K问题3.2.2 方案探索双协程监听channel实现全双工 一个定时器 1…

Unity学习之Unity核心(一)2D相关

文章目录 1. 前言2 图片导入概述3 图片设置的六大部分3.1 纹理类型3.1.1 Default3.1.2 Normal Map 法线贴图格式3.1.3 Editor GUI and Legacy GUI3.1.4 Sprite3.1.5 Cursor 自定义光标3.1.6 Cookie 光源剪影格式3.1.7 LightMap光照贴图格式3.1.8 Single Channel 纹理只需要单通…

【新书推荐】5.1节 16位汇编语言学习环境

第五章 16位汇编学习环境 16位汇编语言的学习环境是建立在8086计算机的基础上的&#xff0c;我将借助于DosBox虚拟机来实现16位汇编语言学习环境的搭建。 5.1节 16位汇编语言学习环境 本节内容&#xff1a;16位汇编学习环境的搭建。 ■汇编语言程序设计编程调试过程&#xff1…

Vulnhub billu b0x

0x01 环境搭建 1. 从官方下载靶机环境&#xff0c;解压到本地&#xff0c;双击OVF文件直接导入到vmware虚拟机里面。2. 将虚拟机的网络适配器调成NAT模式&#xff0c;然后开机即可进行操作了。 0x02 主机发现 nmap -sn 192.168.2.0/24 成功获取靶机IP为192.168.2.129。 0x0…

sqli.labs靶场(23关到28a关)

23、第二十三关 id1单引号闭合 找位置1 and 12 union select 1,2,3 爆库&#xff1a;1 and 12 union select 1,2,database() 爆表名&#xff1a;1 and 12 union select 1,2,group_concat(table_name) from information_schema.tables where table_schemasecurity 爆字段&#…

【大数据】Flink SQL 语法篇(二):WITH、SELECT WHERE、SELECT DISTINCT

Flink SQL 语法篇&#xff08;二&#xff09; 1.WITH 子句2.SELECT & WHERE 子句3.SELECT DISTINCT 子句 1.WITH 子句 应用场景&#xff08;支持 Batch / Streaming&#xff09;&#xff1a;With 语句和离线 Hive SQL With 语句一样的&#xff0c;语法糖 1&#xff0c;使用…