7-43 新浪微博热门话题 (30分)
新浪微博可以在发言中嵌入“话题”,即将发言中的话题文字写在一对“#”之间,就可以生成话题链接,点击链接可以看到有多少人在跟自己讨论相同或者相似的话题。新浪微博还会随时更新热门话题列表,并将最热门的话题放在醒目的位置推荐大家关注。
本题目要求实现一个简化的热门话题推荐功能,从大量英文(因为中文分词处理比较麻烦)微博中解析出话题,找出被最多条微博提到的话题。
输入格式:
输入说明:输入首先给出一个正整数N(≤105 ),随后N行,每行给出一条英文微博,其长度不超过140个字符。任何包含在一对最近的#中的内容均被认为是一个话题,输入保证#成对出现。
输出格式:
第一行输出被最多条微博提到的话题,第二行输出其被提到的微博条数。如果这样的话题不唯一,则输出按字母序最小的话题,并在第三行输出And k more …,其中k是另外几条热门话题的条数。输入保证至少存在一条话题。
注意:两条话题被认为是相同的,如果在去掉所有非英文字母和数字的符号、并忽略大小写区别后,它们是相同的字符串;同时它们有完全相同的分词。输出时除首字母大写外,只保留小写英文字母和数字,并用一个空格分隔原文中的单词。
输入样例:
4
This is a #test of topic#.
Another #Test of topic.#
This is a #Hot# #Hot# topic
Another #hot!# #Hot# topic
输出样例:
Hot
2
And 1 more …
测试完成度75% … 去找找答案哈~
0 答案正确 13 3 ms 188 KB
1 答案正确 4 4 ms 332 KB
2 格式错误 0 3 ms 204 KB
3 答案正确 7 98 ms 332 KB
#include<stdio.h>
#include<string.h>
#include<malloc.h>
节点元素
typedef struct Node {
char s[141]; #之间的字符#
int count; 出现行数
int rol; 记录上一次出现的行,避免一行多次出现
}Str;
链表节点
typedef struct Nodelist {
Str node;
struct Nodelist *next;
}ListNode;
//创建节点
ListNode* createNode()
{
ListNode *p=(ListNode *)malloc(sizeof(ListNode));
p->node.count=0;
p->next=NULL;
return p;
}
//插入 + 修改 节点
void List(ListNode *head,char str[],int rol)
{
str