统计字符串中出现最多的单词和次多的单词
题目:统计字符串中出现最多的单词和次多的单词。
测试用例:"This This This a dog,not a cat!"
输出:This 3次 a 2次
思路:先把这个字符串分词,放入一个数组中。然后记录每个词出现的次数。先找出最多的那个词,然后将其次数置0,在找最多的那个词(原来次多的词)。
#include<iostream>
using namespace std;
#define MAX_COUNT_WORD 256bool isCounted[MAX_COUNT_WORD];//标记该单词已经统计过,即是否在前面出现过
int times[MAX_COUNT_WORD]; //统计单词次数//判断是否为符合单词的字符
bool isRightChar(char data)
{return data>='a'&&data<='z'||data>='A'&&data<='Z';
}
//判断是否为相同的字符串
bool isSameStr(const char* first,const char* second)
{if(strlen(first)!=strlen(second))return false;while(*first++!=*second++)return false;return true;
}
void main()
{char* data="This This This a dog,not a cat!";int length=strlen(data);int i;//统计单词个数和最大长度int count=0;int lastindex=-1;int currentindex=-1;int maxLength=0;for(i=0;i<length;++i){currentindex=i;if(!isRightChar(data[i])){if(currentindex-lastindex>1){++count;if(currentindex-lastindex-1>maxLength)maxLength=currentindex-lastindex-1;}lastindex=currentindex; }}//分词char** word=new char*[count];for(i=0;i<count;++i){word[i]=new char[maxLength+1];memset(word[i],0,maxLength+1);}int current_count=0;lastindex=-1;currentindex=-1;for(i=0;i<length;i++){currentindex=i;if(!isRightChar(data[i])){if(currentindex-lastindex>1){memcpy(word[current_count++],data+lastindex+1,currentindex-lastindex-1);}lastindex=currentindex;}}//比较字符串,统计次数int j;int temp_count=1;for(i=0;i<count;++i){if(isCounted[i])continue;for(j=i+1;j<count;++j){if(isSameStr(word[i],word[j])){isCounted[j]=true;temp_count++;}}times[i]=temp_count;temp_count=1;isCounted[i]=true;}//统计最多的次数 单词int max_times=0;int indexOfWord=0;for(i=0;i<count;++i){if(times[i]&×[i]>max_times){max_times=times[i];indexOfWord=i; }}times[indexOfWord]=0;cout<<"最多的单词次数为: "<<max_times<<" 它是: "<<word[indexOfWord]<<endl;//统计次多的次数 单词max_times=0;indexOfWord=0;for(i=0;i<count;++i){if(times[i]&×[i]>max_times){max_times=times[i];indexOfWord=i; }}cout<<"次多的单词次数为: "<<max_times<<" 它是: "<<word[indexOfWord]<<endl;
}
转载于:https://www.cnblogs.com/pangblog/p/3310461.html
统计字符串中出现最多的单词和次多的单词相关推荐
- JS笔记(字符串篇)——字符串当中找出元素出现的位置和次数统计字符串中出现最多元素的字符与次数
文章目录 字符串的特性 字符串的不可变性: 常用的几个函数 1,☆indexOf 返回字符所在位置 indexOf('字符') 返回字符所在的位置,如果不存在,则返回-1 indexOf('字符' , ...
- python使用正则表达式统计字符串中出现次数最多的数字
python使用正则表达式统计字符串中出现次数最多的数字 #python使用正则表达式统计字符串中出现次数最多的数字 # find the most occurring element import ...
- 习题:统计字符串中的单词个数
1 /*统计字符串中的单词个数*/ 2 #include<stdio.h> 3 int main(void) 4 { 5 char a[80]={""},c; 6 in ...
- JavaScript学习(七十七)—统计字符串中出现次数最多的字符和每个字符出现的次数
JavaScript学习(七十七)-统计字符串中出现次数最多的字符和每个字符出现的次数
- #特辑# 统计字符串中出现次数最多的字符是哪个,并且出现了出现了几次 。
方式一 <!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8&q ...
- 统计字符串中每个单词出现的次数
字符串"wo ai java abc java abc wo",统计字符串中每个单词出现的次数 package work;import java.awt.RenderingHint ...
- [转载] 用python统计中文字符数_使用Python统计字符串中各种字符的个数
参考链接: Python中遍历字符串的单词 Python 统计字符串中各种字符出现的次数 一.提出问题 随机输入一段字符串,包括数字,英文,空格,其他字符,统计这些字符在其中出现的次数 二.难点提示思 ...
- 统计字符串中所包含的各个英文小写字符及其对应的数量。
从键盘输入1行字符串(每行最多输入80个字符), 统计字符串中所包含的各个英文小写字符及其对应的数量. **输入格式要求:不要有任何提示信息,直接输入1行字符. **输出格式要求:按字母顺序输出统计结 ...
- Java案例——统计字符串中每个字符串出现的次数
统计字符串中每个字符串出现的次数 需求: 1.键盘录入一个字符串,要求统计字符串中每个字符串出现的次数 举例:键盘录入"aababcabcdabcde" 在控制台输出:" ...
最新文章
- Android Wi-Fi基本操作
- POJ3277 线段树段更新,点询问+二分离散化+暴力
- CRM+Mysql+php初学
- python 字符串拼接_Python字符串拼接的6种方法(转)
- 阿里P8亲自讲解!javawhile循环语句用法
- python标准库os的方法listdir_使用python标准库快速修改文件名字
- 记录第二次遇到ERROR! MySQL server PID file could not be found!
- 围观京东云,您有一份区块链技术礼包待查收!
- 卷盘商标复卷检测系统
- MySQL之mysqldump的使用
- Word2Vec 与 Word Embedding的关系
- Java 反射常用方法
- 数据库基础教程(一)
- 记一次spirngMVC整合HttpPrinter的过程
- IIS无法启动解决方案
- 人文精神、人文教育与高等教育 徐梦秋
- Linux内核配置选项详解
- golang not enough arguments in call to uuid.Must have (uuid.UUID) want (uuid.UUID, error)
- 运用图像处理解决基于MRI的脑肿瘤图像分割问题
- Typora收费了, 还有哪些好用的markdown工具