LeetCode OJ 之 Longest Substring Without Repeating Characters 解题报告
2015-08-19 12:13
555 查看
题目: Longest Substring Without Repeating Characters
Given a string, find the length of the longest substring without repeating characters. For example, the longest substring without repeating letters for "abcabcbb" is "abc", which the length is 3. For "bbbbb" the longest substring is "b", with the length
of 1.
Solution:
class Solution {
public:
int lengthOfLongestSubstring(string str){
int result = 0;
int temp_res = 0;
int rec_arr[128];
memset(rec_arr, 0, sizeof(rec_arr));
for (int i = 0; i < str.length(); i++)
{
temp_res = 0;
memset(rec_arr, 0, sizeof(rec_arr));
for (int j = i; j < str.length(); j++)
{
if (str[j] >= 128 || str[j] < 0)
{
continue;
}
if (rec_arr[str[j]] != 0)
{
break;
}
else
{
rec_arr[str[j]]++;
temp_res++;
}
}
if (temp_res > result)
{
result = temp_res;
}
}
return result;
}
};
思路:
题目要求求给定字符串中无重复字符的最长子串的长度。
则从字符串的每一个位置依次向后开始遍历,与出现次数的数组成员比较,到出现相同字符时停止或者字符串结尾停止。在此之前如不相同,则将记录出现次数的数组相应成员进行自增操作。
收获:
1.在对数组进行初始化时,使用memset函数,应注意:memset的填充是以字节为单位的,如果你的数组元素不是单个字节的,填充成别的值就会出错只能填充0或者空值,可 自行验证这一结论。另外,在以后应该熟练使用memst函数对数组进行清零操作。
2.在字符串的处理中应熟练掌握Ascii码,在这道题中使用Ascii码更加简单
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- android string.xml文件中的整型和string型代替
- Android java 与 javascript互访(相互调用)的方法例子
- android上改变listView的选中颜色
- String.intern
- Prototype源码浅析 String部分(二)
- Ruby中的String对象学习笔记
- PostgreSQL ERROR: invalid escape string 解决办法
- 浅谈C++中的string 类型占几个字节
- 标准C++类string的Copy-On-Write技术
- C++实现string存取二进制数据的方法
- C#中string和StingBuilder内存中的区别实例分析
- PHP STRING 陷阱原理说明
- c#中 String和string的区别介绍
- C#实现的图片、string相互转换类分享
- asp.net String.IsNullOrEmpty 方法
- JavaScript中字符串(string)转json的2种方法
- C#中string用法实例详解
- C#中的DataSet、string、DataTable、对象转换成Json的实现代码
- JavaScript中的object转换成number或string规则介绍