int AppDelegate::maxNoRepeatSeq(const char * str,int & left,int & right)
{
char bits[26][2] = {0};
int start = 0 ;
int cur_pos = 0 ;
int maxlen = 0;
int noRepeatSeqLen = 0;
while(*str)
{
int i = (int)(*str - 'a');
if(bits[i][0] == 0)
{
bits[i][0] = 1;
bits[i][1] = cur_pos;
noRepeatSeqLen++;
}
else
{
if(noRepeatSeqLen > maxlen)
{
maxlen = noRepeatSeqLen;
left = start;
right = cur_pos - 1;
}
start = bits[i][1] + 1;
bits[i][1] = cur_pos ;
noRepeatSeqLen = cur_pos - start + 1;
for(int k = 0;k < 26;k++)
{
bits[k][0] = 0;
}
}
cur_pos ++;
str++;
}
if(noRepeatSeqLen > maxlen)
{
maxlen = noRepeatSeqLen;
left = start;
right = cur_pos - 1;
}
return maxlen;
}