数据结构:串:第3关:统计字符出现的频度

这篇具有很好参考价值的文章主要介绍了数据结构:串:第3关:统计字符出现的频度。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

任务描述

写一个算法统计在输入字符串中各个不同字符出现的频度,并将结果输出(字符串中的合法字符为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

1.个人最初的想法是对string c排序,删掉相同的(后续字符每个前移一位)并把出现次数给相应b[],但觉得没有按照ascII码的大小存储后,接着输出方便,便没有采用

2.虽然按照ascII码的大小存储后,接着输出很方便,但因此把main中的int[36]改为int[100],并且打印时因为b[]中存了值的位置是因string c的字符的ascII码而定,不仅分布散乱而且不知道长度,只能遍历整个数组。感觉是不太好

PS:string是c++的类型,并有c.length()方法表示字符串长度。也可理解为字符数组长度,string c的c应该和char c[10]的c一样都是指针,所以都可以用c[9]表示文章来源地址https://www.toymoban.com/news/detail-788910.html

#include<iostream>
#include<cstring>
using namespace std;
void Count(string c,int b[])
 {//统计字符出现的频度
/**************begin************/

    for(int i=0;c[i]!='\0';i++){//给对应字符的int[]赋值
        b[c[i]-'/']++;//因为main()中b[]默认0,'0'-'0'=0会出问题
    }
      
    //题目要求按ascII码顺序打印,通过按照ascII码顺序存值的b[]输出最合适
    for(int i=0;i<=100;i++){
      if(b[i]==0) continue;
      printf("%c:%d\n",i+'/',b[i]);//b[]中不会输出重复同一个字符,因为同一字符-'/'的值一样

    
        /**************end************/
 }
 }
int main()
{
    string c;     //存储输入的字符串
    while(cin>>c)//键入string c
    {
        if(c=="0") break;
        int *b=new int[100]{0};        	//存储对应字符的个数
        Count(c,b);
    }
    return 0;
}

到了这里,关于数据结构:串:第3关:统计字符出现的频度的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • sqlserver 查找某个字符在字符串中第N次出现的位置

    如果想要在 Microsoft SQL Server 中查找某个字符在字符串中第 N 次出现的位置,可以使用 CHARINDEX 函数。该函数接受三个参数: 要查找的字符(必需) 要搜索的字符串(必需) 开始搜索的位置(可选) 它会返回所查找字符在字符串中的位置,如果字符不存在,则返回 0。 举个例子,如果

    2024年02月13日
    浏览(38)
  • 统计字符串字符出现的次数

    输入一个字符串,输出字符及相应字符出现的次数。 【学习的细节是欢悦的历程】 Python 官网 :https://www.python.org/ Free :大咖免费“ 圣经 ”教程《 python 完全自学教程 》,不仅仅是基础那么简单…… 地址:https://lqpybook.readthedocs.io/   自学并不是什么神秘的东西 ,一个人一

    2024年02月07日
    浏览(78)
  • 【数据结构-字符串 三】【栈的应用】字符串解码

    废话不多说,喊一句号子鼓励自己:程序员永不失业,程序员走向架构!本篇Blog的主题是【字符串转换】,使用【字符串】这个基本的数据结构来实现,这个高频题的站点是: CodeTop ,筛选条件为: 目标公司+最近一年+出现频率排序 ,由高到低的去 牛客TOP101 去找,只有两个

    2024年02月07日
    浏览(82)
  • 数据结构与算法--字符串(单选题)

    1、令s=\\\"abcabaa\\\",则它的特征向量next函数值和优化特征向量nextval函数值为(下标从0开始): A.next={0,1,1,1,2,3,2},nextval={0,1,1,0,1,2,1} B.next={-1,0,0,-1,0,2,1},nextval={-1,0,0,0,1,2,1} C.next={-1,0,0,0,1,2,1},nextval={-1,0,0,-1,0,2,1} D.next={-1,0,0,0,1,2,1},nextval={-1,0,0,0,1,2,1} C 规定next[1]=0 s[2]前,“a”,next[2]=重合

    2024年02月07日
    浏览(51)
  • 数据结构--字符串的KMP算法

    朴素模式匹配算法: 一旦发现当前这个子串中某个字符不匹配,就只能转而匹配下一个子串(从头开始) 但我们可以知道: 不匹配的字符之前,一定是和模式串一致的 color{red}不匹配的字符之前,一定是和模式串一致的 不匹配的字符之前,一定是和模式串一致的 我们可以利用

    2024年02月12日
    浏览(64)
  • 【零基础学Rust | 基础系列 | 数据结构】元组,数组,向量,字符串,结构体

    在Rust编程语言中,数据结构是组织和存储数据的一种方式,它们使得数据可以高效地被访问和操作。本章将详细介绍元组,数组,向量,字符串,和结构体这几种基本的数据结构。 元组是Rust编程语言中的一种复合数据类型,它可以包含多个值,这些值可以是不同类型。元组

    2024年02月11日
    浏览(61)
  • 判定给定的字符序列是否为回文【数据结构】【栈】

    回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。写一个算法判定给定的字符序列是否为回文。(提示:将一半字符入栈)。 输出结果:    主要算法:    完整代码:             

    2024年02月07日
    浏览(41)
  • 数据结构(C语言):两个字符串比较大小

    在写这篇文章之前,作者想先和大家分享一个小故事。如果你不想看这个小故事的话,可以直接跳到第二点哦。 为了锻炼自己的编码能力,平时作业和实验题的代码我都是不看书、不看老师的PPT,按照自己的思路一行一行敲出来的。同时也不太理解那些照着书敲代码的同学。

    2024年02月03日
    浏览(46)
  • C语言—统计一串字符中各个字符的出现频率

    编写程序,能够统计某一段字符串中各个字符出现的次数。比如输入一串“abcade”,能够统计出其中各个字母的出现频率。 这里实现思路比较巧妙,变量 i 用来做for循环的变量。 num[] 这个数组是给每一个ASIIC字符开辟的数组,通过 (int)str[i] 在遍历整个输入字符串str[]的同时,

    2024年02月08日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包