3. 无重复字符的最长子串
话不多说,上答案。(ps:学习记录,并非最优解,仅供参考。)
int lengthOfLongestSubstring(char* s) {
int maxLen = 0;
int len = 0;
char *p = s; //当前指针位置
char *ps = s; //当前字串开始位置
char *pc = s;//比较位
while('\0' != *p)
{
while(pc != p)
{
if(*pc == *p) //出现重复值
{
maxLen = maxLen > len?maxLen:len; //记录最长值
len = len - (pc - ps) - 1; //从左重复下一位值到当前p的长度
pc++; //下一个字串起始位置为重复值下一位
ps=pc;
break;
}
pc++;
}
p++;
len++;
pc = ps;
}
maxLen = maxLen > len?maxLen:len; //特殊case
return maxLen;
}
本文介绍了一种寻找字符串中无重复字符的最长子串的算法实现,通过使用指针跟踪当前子串的开始和结束位置,以及比较位来检查重复字符,实现了对输入字符串的有效处理。
1545

被折叠的 条评论
为什么被折叠?



