I am getting wrong answer . Please provide me corner test cases.
#include<stdio.h>
#include<string.h>
int count(char a[], char b[],int m,int n)
{
long long lookup[m + 1][n + 1] = { { 0 } };
for (int i = 0; i <= n; ++i)
lookup[0][i] = 0;
for (int i = 0; i <= m; ++i)
lookup[i][0] = 1;
for (int i = 1; i <= m; i++)
{
for (int j = 1; j <= n; j++)
{
if (a[i - 1] == b[j - 1])
lookup[i][j] = lookup[i - 1][j - 1] +
lookup[i - 1][j];
else
lookup[i][j] = lookup[i - 1][j];
}
}
return lookup[m][n];
}
int main()
{
char s[100001],b[3]={‘s’,‘m’,‘s’};
long long t,i,m,n,flag;
scanf("%lld",&t);
while(t–)
{
scanf("%s",s);
m=strlen(s);
n=3;
flag=count(s,b,m,n);
printf("%lld\n",flag);
printf("\n");
}
return 0;
}