1071. Speech Patterns 解析

getline把整行读入,大写变小写,然后去掉标点(标点变空格)

然后分割单词,用set和map建立映射,统计数目。

注意:单个单词的时候,需要单独判定。我是再转换的时候标记又没有空格,没有空格就是单个单词,然后单独输出“该单词 1”。

…………………………更新线………………………………

注意最后没有符号的结尾单词的处理。例如can can can如果依靠非字符判断会少判定一个,单独拿出来就好了。



#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <map>
#include <set>
#include <cstring>

#define MAX 1000010

using namespace std;

string s;
string words[MAX];
map <string, int> str2int;
map <int, string> int2str;
set <string> word;
int Count[MAX];


bool convert(string & s) {
	bool tag = true;
	for (int i = 0; i < s.size(); i++) {
		if (s[i] >= 'A' && s[i] <= 'Z') {
			s[i] = 'a' + s[i] - 'A';
		}
		else if ((s[i] >= 'a' && s[i] <= 'z') || (s[i] >= '0' && s[i] <= '9')) {
		}
		else {
			s[i] = ' ';
			tag = false;
		}
	}
	return tag;
}

int main() {

	memset(Count, 0, sizeof(Count));

	string s;
	getline(cin, s, '\n');

	bool tag = convert(s);



	int pos = 0;
	if (!tag) {
		for (int i = 0; i < s.size(); i++) {
			bool tag = false;
			if (pos > MAX)
				while (1);
			while (s[i] != ' ') {
				words[pos].push_back(s[i++]);
				tag = true;
			}
			if (tag)
				word.insert(words[pos++]);
		}
	}
	else{
		cout << s << " 1" << endl;
		return 0;
	}

	

	int no = 0;
	set <string>::iterator it;
	for (it = word.begin(); it != word.end(); it++) {
		str2int[*it] = no;
		int2str[no++] = *it;
//		cout << *it << endl;
	}

	int max = -1;
	int maxno = 0;
	for (int i = 0; i < pos; i++) {
		int tno = str2int[words[i]];
		Count[tno]++;
		if (max < Count[tno]) {
			max = Count[tno];
			maxno = tno;
		}
	}

	
	cout << int2str[maxno] << " " << Count[maxno] << endl;

	return 0;

}


manning.microservices.patterns是指微服务架构模式方面的内容。微服务是一种架构风格,它将一个应用程序拆分为一组小的、独立的服务,每个服务都可以独立部署、扩展和维护。manning.microservices.patterns通过提供一些常见的模式,帮助开发人员构建可靠、可伸缩、可维护的微服务架构。 首先,manning.microservices.patterns介绍了服务拆分的模式。它提供了一些指导原则,帮助开发人员确定应该将哪些功能拆分为独立的服务,以及如何定义服务边界。这样可以确保每个服务都专注于一个明确的业务领域,并且可以独立地开发和部署。 其次,manning.microservices.patterns讨论了服务间通信的模式。微服务架构中,各个服务需要相互通信来实现业务流程。这本书介绍了一些常见的通信模式,例如同步调用、异步消息传递和事件驱动架构。开发人员可以根据实际需求选择适合的通信方式。 此外,manning.microservices.patterns还介绍了服务发现和负载均衡的模式。由于微服务架构中的服务数量庞大,需要有一种方法来发现和跟踪可用的服务实例。这本书提供了一些模式,如服务注册与发现、负载均衡和断路器模式,帮助开发人员实现可靠的服务发现和负载均衡机制。 最后,manning.microservices.patterns还探讨了监控和故障处理的模式。微服务架构中,每个服务都可以独立部署和维护,因此需要一种方法来监控服务的健康状况,并及时处理故障。这本书介绍了一些常见的监控和故障处理模式,例如服务指标监控、日志聚合和异常处理模式。 总之,manning.microservices.patterns是一本关于微服务架构模式的书籍,它提供了一些常见的模式,帮助开发人员构建可靠、可伸缩、可维护的微服务架构。这些模式涵盖了服务拆分、服务间通信、服务发现和负载均衡、监控和故障处理等方面,可以帮助开发人员在构建微服务架构时更加高效地解决各种技术挑战。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值