您的位置:首页 > 其它

[LeetCode] Longest Substring Without Repeating Characters

2014-07-07 10:38 302 查看
题目链接

int lengthOfLongestSubstring(string s) {
int last_pos[128] = {-1};
for(int i = 0; i < 128; i++)
{
last_pos[i] = -1;
}

int sub_length = 0, max_length = 0;
for(int i = 0; i < s.length(); i++)
{
int index = int(s[i]);
if(last_pos[index] == -1)
{
last_pos[index] = i;
sub_length++;
}
else
{
max_length = sub_length > max_length? sub_length: max_length;
sub_length = 0;
i = last_pos[index];
for(int j = 0; j < 128; j++)
{
last_pos[j] = -1;
}
}
}
max_length = sub_length > max_length? sub_length: max_length;
return max_length;
}

第一次Wrong Answer是因为直接从重复的字符开始找新的子串,应该是从该重复字符上一次出现的位置后一位开始找;

第二次Wrong Answer是误将int last_pos[128] = {-1};当做对数组所有元素初始化了,应该写个循环来赋值。

程序Run Time是264 ms。。有待改进啊。


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: