All pastes #2092580 Raw Edit

Miscellany

public text v1 · immutable
#2092580 ·published 2011-10-22 17:30 UTC
rendered paste body
#include <iostream>
#include <string>
#include <vector>
#include <sstream>

using namespace std;

void LoadWords(vector<string>& words)
{
	string leString;

	getline(cin, leString);
	
	for (unsigned int i = 0; i < leString.size(); i++)
	{
		if (leString[i] == '.' ||
			leString[i] == ',' ||
			leString[i] == '?' ||
			leString[i] == '!')
		{
			leString[i] = ' ';
		}
	}

	stringstream ss(leString);
	string part;
	while(!ss.eof()) 
	{
		ss >> part;
		words.push_back(part);
	}
}

void LoadDatas(vector<string>& bloomFilterWords, vector<string>& datas)
{
	LoadWords(bloomFilterWords);
	LoadWords(datas);
}

int main()
{
	vector<string> bloomFilterWords;
	vector<string> datas;
	LoadDatas(bloomFilterWords, datas);

	vector<bool> bloomFilter(26, false);
	
	for (unsigned int i = 0; i < bloomFilterWords.size(); i++)
	{
		for (unsigned int j = 0; j < bloomFilterWords[i].size(); j++)
		{
			bloomFilter[tolower(bloomFilterWords[i][j]) - 'a'] = true;
		}
	}

	int count = 0;
	for (unsigned int i = 0; i < datas.size(); i++)
	{
		bool isInFilter = true;
		for (unsigned int j = 0; j < datas[i].size(); j++)
		{
			isInFilter &= bloomFilter[tolower(datas[i][j]) -'a'];
		}

		if (isInFilter)
		{
			count++;
		}
	}

	cout << count;

	return 0;
}