#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
const char* str = "abdafgkfbcdakpy";
int hash[256] = { 0 };
const char* maxStr = str;
int maxNum = 0;
const char* start = str;
const char* p;
for (p = str; *p != '\0'; p++)
{
if (hash[*p] == 0)
{
hash[*p] = 1;
}
else
{
if (p - start > maxNum)
{
maxNum = p - start;
maxStr = start;
}
while (*start != *p)
{
hash[*start] = 0;
start++;
}
start++;
}
}
if (p - start > maxNum)
{
maxNum = p - start;
maxStr = start;
}
char* target = (char*)malloc(maxNum + 1);
memcpy(target, maxStr, maxNum);
target[maxNum] = '\0';
printf("The target str is %s", target);
}