请求大佬帮助,目前RE内存非法访问,40分
查看原帖
请求大佬帮助,目前RE内存非法访问,40分
1041399
tang10110310楼主2024/9/16 19:08

请求大佬帮助,目前RE内存非法访问,40分

#include<bits/stdc++.h>

using namespace std;

int n,q;

bool vowel(char x)
{
	return x=='a'||x=='e'||x=='i'||x=='o'||x=='u';
}

void grd(string& x,vector<string>& xv)
{
	int start=0;
	for(int i=0;i<x.length();i++)
	{
		if(i==x.length()-1)
		{
			xv.push_back(x.substr(start,i-start+1));
		}
		else if(vowel(x[i]))
		{
			xv.push_back(x.substr(start,i-start+1));
			start=i+1;
		}
		else if(x[i]=='n')
		{
			if(!vowel(x[i+1]))
			{
				xv.push_back(x.substr(start,i-start+1));
				start=i+1;
			}
		}
		else if(x[i+1]=='n'&&(i==x.length()-2||!vowel(x[i+2])))
		{
			xv.push_back(x.substr(start,i-start+1));
			start=i+1;
		}
	}
}

int main()
{
	string c[100000],s;
	vector<string> cv[10],sv;
	cin>>n>>q;
	for(int i=0;i<n;i++)
	{
		cin>>c[i];
		grd(c[i],cv[i]);
	}
	for(int i=0;i<q;i++)
	{
		int ans=0;
		cin>>s;
		sv.clear(); 
		grd(s,sv);
		for(int j=0;j<n;j++)
		{
			bool fa=false;
			for(int k=0;k<=sv.size()-cv[j].size();k++)
			{
				bool fb=true;
				for(int l=0;l<cv[j].size();l++)
				{
					if(sv[k+l]!=cv[j][l])
					{
						fb=false;
						break;
					}
				}
				if(fb)fa=true;
			}
			if(fa)ans++;
		}
		if(ans==1)
		{
			cout<<"Yes, Commander\n";
		}
		else
		{
			cout<<"No, Commander\n";
		}
	}
	for(int i=0;i<n;i++)
	{
		cv[i].clear();
	}
	sv.clear();
	return 0;
}
2024/9/16 19:08
加载中...