152. Given two strings, return the last index of a given substring in a string
Microsoft Interview Questions and Answers
(Continued from previous question...)
152. Given two strings, return the last index of a given substring in a string
Question:
Given two strings, return the last index of a given substring in a string
maybe an answer:
int Findsubstring(Char* s1,char* s2)
{
int l=strlen(s1);int m=strlen(s2);
if(m>n)
{
for(int i=0;i<=m-n;i++)
if(strcmp(substr(s1,i,i+n),s2)==0)
return i+n;
}
else
{
for(int i=0;i<=n-m;i++)
if(strcmp(substr(s2,i,i+m),s1)==0)
return i+m;
}
}
maybe an answer2:
Use autometa. N =Input String Length, Time O(N), Space O(1)
/*Assuming that input pointers are valid*/
int patternMatch (char* pInputStr, char* pPattern)
{
int inputLen = strlen (pInputStr);
int patternLen = strlen (pPattern);
int indexInPattern = patternLen - 1;
int indexInInput = inputLen - 1;
int returnIndex = -1;
while (indexInPattern >= 0)
{
if (pInputStr [indexInInput] == pPattern [indexInPattern])
{
indexInPattern --;
}
else
{
indexInPattern = patternLen - 1;
}
if (indexInPattern == -1)
{
returnIndex = indexInInput;
break;
}
indexInInput --;
}
return returnIndex;
}
(Continued on next question...)
Other Interview Questions
|