算法:字符串数组问题
主要工具:hash table
在长度为n的母串中匹配长度为m的子串
Brute-force算法:(暴力求解)顺序遍历母串,将每个字符作为匹配字符,判断是否匹配子串。时间复杂度O(m*n)
char * Strstr(const char *str, const char * target)
{
if (! *target)
return str;
char *p1 = (char*)str;
while(*p1)
{
char *p1Begin = p1;
*p2 = (char*) target;
while(*p1 && *p2 && *p1==*p2)
{
p1++;
p2++;
}
if ( !*p2 )
return p1Begin;
p1 = p1Begin+1;
}
return NULL;
}
Rabin-Karp算法:
确定字符串中的字符是否唯一
hashmap:
bool