这个题目的话开两个数组。一个字符串数组存放要查找的内容。由于题目中说了查找的为子序列,那么这时候需要另一个数组res[]来统计前面出现的次数。其中**res[j]+res[j-1]**这个相加操作可以确保子序列中的两个字母是连在一起的。这样的话最后的累加和即为答案。

代码如下: #include

#include

using namespace std;

int main() {

string s;
char a[10]="9iloveyou";
int res[9]={1};
getline(cin,s);
for(int i=0; i<s.size(); i++) {
	if(s[i]>='A'&&s[i]<='Z')s[i]=s[i]+32;
	for(int j=1;j<=8;j++){
		if(a[j]==s[i])res[j]=(res[j]+res[j-1])%20010905;
	} 
}
cout<<res[8]<<endl;
return 0;

}