题意为判断一个字符串是否出现在另外一个字符串中,存在则返回其第一次出现的位置,否则返回-1.
class Solution { public: int strStr(char *haystack, char *needle) { int Len1=strlen(haystack); int Len2=strlen(needle); if(Len1<Len2) return -1; if(Len2==0) return 0; for(int i=0;i<Len1;++i) { int j=0; int k=i; if(i>Len1-Len2)//这一句可用于剪枝,后面的就不需要判断了 return -1; while(k<Len1&&j<Len2&&haystack[k]==needle[j]) { ++k; ++j; } if(j==Len2) return i; } return -1; } };
if(i>Len1-Len2)//这一句可用于剪枝,后面的就不需要判断了 return -1;
原文地址:http://blog.csdn.net/yinqiaohua/article/details/43671721