一道简单面试题

wenhongang 2011-10-29 01:14:44
编程实现输入一串英文,统计其中各单词出现的个数(不区分大小写字母),以“000”作为字符串输入结束标志,例如:
Twinkle twinkle little star 000(回车)
twinkle little star
2 1 1
...全文
133 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
AndyZhang 2011-10-29
  • 打赏
  • 举报
回复
hash 表吧
guanhuijie 2011-10-29
  • 打赏
  • 举报
回复
先转化为小写,然后可以设两个标志量 1表示在单词内 0表示在单词外 进行统计单词数
零下一度 2011-10-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zhongxianyao 的回复:]
1.把字母都转化为小写的
2.分割出每个单词放在一个链表中,链表的初始中每个单词出现的次数都是1
链表的结构可以这样
struct list
{
char word[20];
int time;
struct list *next;
};
3.在链表中删除相同的单词,并把单词出现的次数自加1
4.遍历链表,输出单词及出现的次数
具体的代码就自己动手写吧
[/Quote]

这个思路其实挺好的!!!
myhaikuotiankong 2011-10-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zhongxianyao 的回复:]
1.把字母都转化为小写的
2.分割出每个单词放在一个链表中,链表的初始中每个单词出现的次数都是1
链表的结构可以这样
struct list
{
char word[20];
int time;
struct list *next;
};
3.在链表中删除相同的单词,并把单词出现的次数自加1
4.遍历链表,输出单词及出现的次数
具体的代码就自己动手写吧
[/Quote]++
failuer 2011-10-29
  • 打赏
  • 举报
回复
如果数据量很小的话,可以直接循环查找
如果数据量很大的话,可以使用Trie树
编程点滴 2011-10-29
  • 打赏
  • 举报
回复
1.把字母都转化为小写的
2.分割出每个单词放在一个链表中,链表的初始中每个单词出现的次数都是1
链表的结构可以这样
struct list
{
char word[20];
int time;
struct list *next;
};
3.在链表中删除相同的单词,并把单词出现的次数自加1
4.遍历链表,输出单词及出现的次数
具体的代码就自己动手写吧
苏客达 2011-10-29
  • 打赏
  • 举报
回复
kmp?

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧