运用数理统计上的知识可知,a有三种即" “,“a”,“a”;b有两种即” “,“b”;
c有两种” ",“c”;然后运用排列组合的求解方式即
#include<stdio.h>
#include<string.h>
int main()
{
char str[1000000];
int i, sum=1,num[122] = { 0 };
printf("Please input string:\n");
scanf("%s", &str);
for (i = 0; i < strlen(str); i++)
{
num[(int) str[i]]++;
}
for (i = 0; i < 122; i++)
{
if (num[i] != 0)
{
sum *= num[i]+1;
}
}
printf("该字符串共有%d个优美的子序列。",sum);
return 0;
}