字母统计 思想值得学习

      

题目描述
现在给你一个由小写字母组成字符串,要你找出字符串中出现次数最多的字母,如果出现次数最多字母有多个那么输出最小的那个。

输入
第一行输入一个正整数T(0<T<25)
随后T行输入一个字符串s,s长度小于1010。

输出
每组数据输出占一行,输出出现次数最多的字符;

样例输入
3
abcd
bbaa
jsdhfjkshdfjksahdfjkhsajkf
样例输出
a
a
j
提示

这一种 将    字母转换成  数字  并且 作为数组下表的情况  十分的好   省时省力

#include <stdio.h>
#include<algorithm>
#include <string.h>
using namespace std;
bool cmp(int a,int b)
{
    return a>b;
}
int main()
{
    int l,i,j,m,n,t,a[30],q;
    char b[1020];
    scanf("%d",&t);
    while(t--)
    {
        memset(a,0,sizeof(a));    //全部初始化 0
        scanf("%s",b);
        l=strlen(b);
        for(i=0;i<l;i++)
        {
            a[b[i]-97]++;
        }
        sort(a,a+30,cmp);   //这时候  a[0]就是出现最多的次数.
        q=a[0];
        memset(a,0,sizeof(a));
        for(i=0;i<l;i++)
        {
            a[b[i]-97]++;
        }
        for(i=0;i<l;i++)
        {
            if(a[i]==q)
            {
                q=i;
                break;
            }
        }
        printf("%c\n",97+i);
    }
}
时间: 2024-12-14 05:10:42

字母统计 思想值得学习的相关文章

是什么让C#成为最值得学习的编程语言

随着 Web.iOS.Android.智能设备的流行,新的编程语言纷纷涌现并表现不俗,如 Ruby,Python,Scala,Go,Node.js,Swift 等.反观已经发展了近20年的 C# 语言(或者这里应该更准确的说是 .Net Framework),因为天生的平台局限,导致很多的 C# 程序员为了生计和前途纷纷转行投入的新语言的怀抱. 就在此时,微软的 .Net Core 横空出世 跨平台:可以在 Windows.MacOS 和 Linux 上运行. 兼容性: .NET Core 通过

一些关于机器学习和统计方面值得阅读的书籍

一些关于机器学习和统计方面值得阅读的书籍 一下著作都是一些经典的英文著作,不是崇洋媚外,大部分的知识都是由人老外提出并发展的,国内一些书籍质量实在不敢恭维,所以在初始的学习时,最好还是选择英文的著作,解除第一手资料,对于启发式的学习很有帮助,也比较容易站在巨人的肩膀上眺望,做出的成果可能也更加具有贡献性 1. Gaussian Processes for Machine Learning, Carl Edward Rasmussen and Chris Williams, the MIT Pre

go语言值得学习的开源项目推荐

谷歌官方维护了一个基于go语言的开源项目列表: https://github.com/golang/go/wiki/Projects 其中有非常多的优秀项目值得学习,有几百行代码适合新手阅读的项目,也有大型如nsq.docker等的项目. 下面推荐几款适合学习的项目: 1.cache2go https://github.com/muesli/cache2go 比较简单的一个缓存库,代码量很少,适合新手学习,可以学习到锁.goroutines等. 2.groupcache https://gith

字母统计(南阳oj241)(水题)

字母统计 时间限制:3000 ms  |  内存限制:65535 KB 难度:1 描述 现在给你一个由小写字母组成字符串,要你找出字符串中出现次数最多的字母,如果出现次数最多字母有多个那么输出最小的那个. 输入 第一行输入一个正整数T(0<T<25) 随后T行输入一个字符串s,s长度小于1010. 输出 每组数据输出占一行,输出出现次数最多的字符: 样例输入 3 abcd bbaa jsdhfjkshdfjksahdfjkhsajkf 样例输出 a a j 来源 [路过这]原创 上传者 路过这

值得学习的C/C++开源框架(转)

值得学习的C语言开源项目 - 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力.Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行. 下载链接:http://home.tiscali.cz/~cz210552/webbench.html - 2. Tinyhttpd tinyhttpd是一个超轻量型Ht

很值得学习的java 画图板源码

很值得学习的java 画图板源码下载地址:http://download.csdn.net/source/2371150 package minidrawpad; import java.awt.*; import java.awt.event.*; import java.io.InputStreamReader; import java.io.Reader; import javax.swing.*; // 主界面类 public class DrawPad extends JFrame i

目的可疑,但方法非常值得学习的书——leo鉴书56

书中提到写作手法绝对值得学习,为此能够打四颗星. 作者是个买直销产品的.靠写字让别人买自己的东西.当中特别强调了卖的多是太空时代的产品,意思就是读者非常可能并不须要,多半是被眼花缭乱的广告词儿骗了--本书就是讲怎样写相对长篇广告的(作者把这叫文案),以此来看书里写字的初衷就是诱骗读者买那些并不须要的高价玩意. 在书第79页,非常是直白地写到"我要的是让客户掏出血汗钱来购买产品或者服务."至少在我看来血汗钱是用来购买生活必须品的. 尽管说目的可疑.可是写作手法绝对值得学习. 大概算了算从

九度OJ 1098 字母统计

题目1098:字母统计 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3187 解决:1536 题目描述: 输入一行字符串,计算其中A-Z大写字母出现的次数 输入: 案例可能有多组,每个案例输入为一行字符串. 输出: 对每个案例按A-Z的顺序输出其中大写字母出现的次数. 样例输入: DFJEIWFNQLEF0395823048+_+JDLSFJDLSJFKK 样例输出: A:0 B:0 C:0 D:3 E:2 F:5 G:0 H:0 I:1 J:4 K:2 L:3 M:0 N:1 O

六、第一个Linux驱动程序:统计单词个数 ——学习笔记

第6章 第一个Linux驱动程序:统计单词个数 ——学习笔记 一.首先了解一下: 打印机驱动写入数据:对于打印机驱动来说,需要接收这些被写入的数据,并将它们通过PC的并口.USB等端口发送给打印机.要实现这一过程就需要Linux驱动可以响应应用程序传递过来的数据.这就是Linux驱动的事件,虽然在C语言里没有事件的概念,但却有与事件类似的概念,这就是回调(callback)函数.因此,编写Linux驱动最重要的一步就是编写回调函数,否则与设备文件交互的数据将无法得到处理.图6-1是应用软件.设备