首页 > 其他分享 >1253: 统计字符出现的频度

1253: 统计字符出现的频度

时间:2023-10-21 19:34:26浏览次数:31  
标签:字符 数字 输出 int 字母 1253 频度

1253: 统计字符出现的频度

题目描述

写一个算法统计在输入字符串中各个不同字符出现的频度并将结果输出(字符串中的合法字符为A-Z之间的26个字母和0-9之间的10个数字)。

输入

多组数据,每组数据有一行,为待统计字符频度的字符串。当字符串为“0”时,输入结束。

输出

对于每组数据输出n行,每一行为一个字符出现的频度(只输出存在的字符,格式为:字符:频度),字符排列顺序按照ASCII码从小到大的顺序

样例输入


LITTLE5ILOVEYOU
AREYOUOKNUMB90077
0

样例输出

5:1
E:2
I:2
L:3
O:2
T:2
U:1
V:1
Y:1
0:2
7:2
9:1
A:1
B:1
E:1
K:1
M:1
N:1
O:2
R:1
U:2
Y:1

思路分析:

首先利用两个桶,分别记录数字和字母出现的次数(桶的下标表示字母或数字,a[i]表示这个字母或者数字出现的次数),因为题目要求按ascll从小到大输出,所以先输出数字,再输出字母。

#include<bits/stdc++.h>
using namespace std;
int a[26];//用来存字母
int b[10]; //用来存数字
int main()
{
	while(1)
	{
		for(int i=0;i<26;i++)
		{
			a[i]=0;
		}
		for(int i=0;i<=9;i++)
		{
			b[i]=0;
		}
		string s;
		cin>>s;
		if(s[0]=='0')//需要带上引号才表示ascll码值
		{
			break;
		}
		for(int i=0; i<s.length(); i++)
		{
			if(s[i]>='A'&&s[i]<='Z')//字母 存入
			{
				a[s[i]-65]++;//应该是s[i]-65+1表示这个字母在单词表中的位置,但是桶的数组从零开始,所以再减去一
			}
			else
			{
				b[s[i]-48]++;
			}
		}
		for(int i=0; i<=9; i++)
		{
			if(b[i]!=0)
			{
				cout<<i<<":"<<b[i]<<endl;//b[i]表示它出现的次数
			}
		}
		for(int i=0; i<26; i++)
		{
			if(a[i]!=0)
			{
				cout<<char(i+65)<<":"<<a[i]<<endl;
			}
		}
	}
	return 0;
}
/*
啊,被题目吓到了,按ascll码从小到大,先输出数字再输出字母不就行了,数字跟数字都是挨着的
*/

标签:字符,数字,输出,int,字母,1253,频度
From: https://www.cnblogs.com/txw123/p/17779397.html

相关文章

  • 巧用模板字符串将未知变量转换为string类型,避免报错
    可理解为将变量向字符串类型转换的语法糖用法我们通常会遇到需要用String.prototype上的方法处理变量,如果该变量为null、undefined、Object则不能直接用字符串方法,也不易于统一处理为字符串;使用模板字符串包裹该变量,则可以简单粗暴的将任意类型转换为字符串类型,避免报错。案例:......
  • C#中如何获得GB2312字符集汉字的区位码?
    一、GB2312字符集汉字编码间的转换1、区位码转换为国标码方法如下:国标码高位字节=(区号)H+20H国标码低位字节=(位号)H+20H区位码转换为国标码的方法是加2020H 2、国标码转换为机内码方法如下:机内码高位字节=(国标码)H+80H机内码低位字节=(国标码)H+80H国标码转换为机内......
  • 关于 Python 字符串切片的小领悟
    1.什么是Python字符串切片?例如存在字符串str2=“abcd1234",有以下简单的切片应用。str2[0]#astr2[0:3]#abcstr2[0:6:2]#ac1有3种形式的切片:string[index]:获取字符串特定下标字符string[start,stop]:获取从start坐标到stop坐标的字符串,注意左闭右开......
  • 计算机字符编码入门篇
    前言本文旨在为初学者提供有关计算机字符编码的基础知识,以帮助他们初步理解计算机中字符编码的概念。鉴于我个人知识的限制,如有不准确之处,欢迎指正并提供建议。文中部分内容参考ChatGPT,在此感谢ppword的大力支持。一、什么是二进制二进制是一种数字表示系统,它只使用两个数字......
  • python基础-数据类型(字符串-布尔-整数)
    目录1.整数(int)1.1定义1.2独有功能1.3公共功能1.4转换1.5其他1.5.1长整型1.5.2地板除1.5.3其它2.布尔(bool)2.1定义2.2独有功能2.3公共功能2.4转换2.5其他做条件自动转换3.字符串(str)3.1定义3.2独有功能3.2.1练习题3.3公共功能3.4转换3.5其他4.练习题......
  • 字符编码记with管理文件md
    目录字符编码Python2和3字符编码的区别python2python3文件的三种打开方式with管理文件上下文pyinstaller的使用字符编码二进制和字符之间的转换过程-->字符编码ascii,gbk,shit,fuck每个国家都有自己的编码方式美国电脑内存中的编码方式为ascii;中国电脑内存中的编码方式......
  • 数字、字符串类型内置方法
    数据类型1为什么要有数据类型​ 对于不同类型的变量需要用不同的数据类型去描述​ 常用:数字类型、字符串、列表、字典、布尔值1.1数据类型的内置方法1.1.1整型作用:年龄/身份证号码/身高/体重……定义方式:y=10id_num=5201314x=int(10)z=int('10')方法:......
  • 在一个字符串中抠出最长的那串字符 {C..字符串处理}
    不知道别人怎么看``应该是自己的道行不够吧..!拿C处理字符串``着实太恶心啊...!voidstringdelete(char*str,constchar*sub){while(NULL!=(str=strstr(str,sub))){memmove(str,str+strlen(sub),strlen(str+strlen(sub))+1);}}int......
  • 【从零学习python 】05. Python中运用算数运算符进行计算和字符串拼接
    进制现代的计算机和依赖计算机的设备里都用到二进制(即0和1)来保存和表示数据,一个二进制表示一个比特(Bit)。在二进制的基础上,计算机还支持八进制和十六进制这两种进制。除了计算机里的进制以外,我们生活中经常用到的是十进制。Python语言支持二进制、八进制、十六进制以......
  • 【从零学习python 】05. Python中运用算数运算符进行计算和字符串拼接
    进制现代的计算机和依赖计算机的设备里都用到二进制(即0和1)来保存和表示数据,一个二进制表示一个比特(Bit)。在二进制的基础上,计算机还支持八进制和十六进制这两种进制。除了计算机里的进制以外,我们生活中经常用到的是十进制。Python语言支持二进制、八进制、十六进制以......