SOS
查看原帖
SOS
319720
MrKeanu楼主2020/11/5 09:31

只有50分,头秃了,希望有大佬看透我的逞强,然后温柔地告诉我错在哪里了。(我太菜了) 大致思路是遍历字符串,当所给字符串头字符与目标字符串头字符相同循环目标字符串是否与接下来的字符串字符相同。

代码如下:

#include"bits/stdc++.h"
using namespace std;
typedef long long ll;
const ll M = 10001;

int main(){
	ll i,j,sum,ans;
	string s,a;
	
	getline(cin,a);
	getline(cin,s);
	
	sum=0,ans=-1;
	
	for(i=0;i<s.length()-a.length();i++)
	{
		if((s[i-1]==' '&&i>=0)||i==0)
		if(s[i]==a[0]||s[i]==a[0]+'a'-'A'||s[i]==a[0]-'a'+'A')
		{
			if(ans==-1&&sum==0)	ans=i;
			for(j=0;j<a.length();j++)
			{
				if(s[i+j]==' ') break;
				if(s[i+j]==a[j]||s[i+j]==a[j]+'a'-'A'||s[i+j]==a[j]-'a'+'A')
				{
					if(j==a.length()-1&&s[i+j+1]==' ')
					{
						sum++;
						break;
					}
					continue;
				}
				else break;
			}
		}	
	}
	
	if(sum)
	{
		cout<<sum<<" "<<ans;	
	}
	else cout<<sum-1;
	
	return 0;
}

先%%%%为敬

2020/11/5 09:31
加载中...