题目链接:
登录 - 沐枫OJ
我的思路:(是错的)
#include <bits/stdc++.h>
using namespace std;
string ming = "KeepOnGoingAndNeverGiveUp";
int mNum[52];
int sNum[52];
int main(){
string s;
getline(cin,s);
int snum = s.length();
int mnum = ming.length();
//求解鸣人名言中每个字符的个数
for(int i = 0;i < mnum;i++){
if((ming[i]-'a')>=0&&(ming[i]-'a')<=25)
mNum[ming[i]-'a']++;
else if((ming[i]-'A')>=0&&(ming[i]-'A')<=25)
mNum[ming[i]-'A'+26]++;
}
//求解输入字符串中每个字符的个数
for(int i = 0;i < snum;i++){
if((s[i]-'a')>=0&&(s[i]-'a')<=25)
sNum[s[i]-'a']++;
else if((s[i]-'A')>=0&&(s[i]-'A')<=25)
sNum[s[i]-'A'+26]++;
}
int yon = 1;
//比较两个字符串的大小
for (int m=0;m<52;m++)
{
if(mNum[m]>sNum[m])
{
cout << "none";
return 0;
}
}
//求幸运字符串的开始和结束
int indexs = 0;
int indexe = 0;
int index = 0;
while(index<snum)
{
if(((s[index]>='a'&&s[index]<='z')||(s[index]>='A'&&s[index]<='Z'))&&ming.find(s[index]))
{
indexs = index;
break;
}
else
{
index++;
}
}
index = snum-1;
while(index>=0)
{
if(ming.find(s[index])!=string::npos)
{
indexe = index;
break;
}
else
{
index--;
}
}
cout<<s.substr(indexs,indexe)<<endl;
return 0;
}
请求帮助!!