华为机试—输出包含名字的个数跟字符串

华为机试—输出包含名字的个数和字符串

题目:

输入一个n,再输入n个字符串,再输入一个名字串,输出包含名字串的个数和字符串。


输入:

10
sfsfjacksdf
jajajack
jack
jjjjjjjjckd
jjjjjjjjjjjack
jackkkkk
jajackkkkkkk
hello
wordjack
jajaccccjack

jack


输出:

8

sfsfjacksdf
jajajack
jack
jjjjjjjjjjjack
jackkkkk
jajackkkkkkk
wordjack
jajaccccjack

#include <iostream>
#include <vector>
#include <string>
using namespace std;

int main()
{
	vector<string> result;
	string arrayStr[100];
	int i,j,k;
	int count=0;

	string s;
	int n;
	cin>>n;

	for(i=0;i<n;i++)
		cin>>arrayStr[i];

	cin>>s;

	/*
	//方法一
	for(i=0;i<n;i++)
	{
		for(j=0;j<arrayStr[i].length();)
		{
			if(s[0]==arrayStr[i][j])
			{
				for(k=1;k<s.length();)
				{
					if(s[k]!=arrayStr[i][j+1])
					{
						j++;
						break;
					}
					else
					{
						j++;
						k++;
					}
				}
				if(k==s.length())
				{
					count++;
					result.push_back(arrayStr[i]);
				}
			}
			else
				j++;
		}
	}
	*/

	//方法二
	for(i=0;i<n;i++)
	{
		if(arrayStr[i].find(s)!=-1)
		{
			count++;
			result.push_back(arrayStr[i]);
		}
	}

	if(count==0)
		cout<<0<<endl;
	else
	{
		cout<<count<<endl;
		for(i=0;i<result.size();i++)
			cout<<result[i]<<endl;
	}

	return 0;
}



华为机试—输出包含名字的个数跟字符串