| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 490 人关注过本帖
标题:求解统计字母频率的疑惑
只看楼主 加入收藏
hhcyu
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-7-8
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
求解统计字母频率的疑惑
#include<stdio.h>
main()
{ int a,b;
    char s[200],c[26];
    gets(s);
    for(a=0;s[a]!='\0';a++)
       {s[a]='a'<=s[a]&&s[a]<='z'?s[a]:s[a]+32;
       c[s[a]-'a']++;};
    for(b=0;b<26;b++)
       printf("%c的使用频率为%d\n",b+65,c[b]);   
}
我想法是第一个FOR合并大小写,并统计频率给C数组,第二个FOR输出
求大神抽点时间指导一下啊啊啊啊啊
搜索更多相关主题的帖子: 统计 字母 
2014-07-08 19:37
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:10 
s[a]='a'<=s[a]&&s[a]<='z'?s[a]:s[a]+32;
多加几个括号难吗?

总有那身价贱的人给作业贴回复完整的代码
2014-07-08 20:30
dongshimou
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:44
专家分:152
注 册:2014-1-8
收藏
得分:10 
统计单词频率可以考虑使用Trie树。
程序代码:
struct Trie
{
    int word[510000][26];
    int sz,cot;
    int ex[510000*10];
    Trie()
    {
        sz=1;//节点
        cot=1;//单词数
        memset(word,0,sizeof(word));
        memset(ex,0,sizeof(ex));
    }
    int insert(char *s)
    {
        int u=0,c,len=strlen(s);
        for(int i=0; i<len; i++)
        {
            c=s[i]-'a';
            if(!word[u][c])
            {
                word[u][c]=sz++;
            }
            u=word[u][c];
        }
        if(ex[u]==0)ex[u]=cot++;
        return ex[u];
    }
}wo;

做POJ 某道题的时候用 map 一直超时,怒写Trie。
5000ms都超时立马变 600多ms。效率很高。
 函数返回的这是输入顺序中 出现的第几个单词。
当然,稍微改一下就可以统计某个单词出现的频率
ex[]数组就是附加值。
2014-07-08 22:46
dongshimou
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:44
专家分:152
注 册:2014-1-8
收藏
得分:0 
以下是引用dongshimou在2014-7-8 22:46:42的发言:

统计单词频率可以考虑使用Trie树。
struct Trie
{
    int word[510000][26];
    int sz,cot;
    int ex[510000*10];
    Trie()
    {
        sz=1;//节点
        cot=1;//单词数
        memset(word,0,sizeof(word));
        memset(ex,0,sizeof(ex));
    }
    int insert(char *s)
    {
        int u=0,c,len=strlen(s);
        for(int i=0; i



抱歉,看错了。
我以为是统计单词出现频率。
还有就是C++ 用法。
2014-07-08 22:48
快速回复:求解统计字母频率的疑惑
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029577 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved