Pergunta de entrevista da empresa Cisco

Write code to see if a string is a sub string of another?

Respostas da entrevista

Sigiloso

25 de mar. de 2012

#include struct stStringList { char val; stStringList* pNext; }; stStringList* pRoot = new stStringList; stStringList* pCur ; int GetSubstringSimilarity(stStringList* pNode,char* str2); int main() { int n = 0; char ch[20], ch2[20]; std::cin>>ch>>ch2; int len1 = strlen(ch); pCur = pRoot; for(int i = 0; i pNext = NULL; pNew->val = ch[i]; pTemp->pNext = pNew; pCur = pCur->pNext; } if(GetSubstringSimilarity(pRoot->pNext,ch2)) std::cout= len2) { ret = 1; break ; } else if(pTemp->val == str2[nstrCnt]) { pTemp = pTemp->pNext; nstrCnt++; } else { pTemp = pTemp->pNext; nstrCnt = 0; } } return ret; }

Sigiloso

25 de mar. de 2012

The above program has the least complexity and most optimized. However still there is a scope of optimization. Please post the and comments if so.

Sigiloso

25 de mar. de 2012

Slight modification in the above code #include struct stStringList { char val; stStringList* pNext; }; stStringList* pRoot = new stStringList; stStringList* pCur ; int GetSubstringSimilarity(stStringList* pNode,char* str2); int main() { int n = 0; char ch[20], ch2[20]; std::cin>>ch>>ch2; int len1 = strlen(ch); pCur = pRoot; for(int i = 0; i pNext = NULL; pNew->val = ch[i]; pTemp->pNext = pNew; pCur = pCur->pNext; } if(GetSubstringSimilarity(pRoot->pNext,ch2)) std::cout= len2) { ret = 1; break ; } else if(pTemp->val == str2[nstrCnt]) { pTemp = pTemp->pNext; nstrCnt++; } else { nstrCnt = 0; if(pTemp->val == str2[nstrCnt]) { nstrCnt++; } pTemp = pTemp->pNext; } } return ret; }