3. Longest Substring Without Repeating Characters - 最长无重复字符子串-Medium
Examples:
Description:
Given a string, find the length of the longest substring without repeating characters.
Example:
Given"abcabcbb"
, the answer is"abc"
, which the length is 3.
Given"bbbbb"
, the answer is"b"
, with the length of 1.
Given"pwwkew"
, the answer is"wke"
, with the length of 3. Note that the answer must be a substring,"pwke"
is a subsequence and not a substring.
思路分析:
1.第一想法:从第一个字符起,逐个计算出最长字串长度,然后到遍历到最后一个字符,得到最大值;
2.其中逐个计算最长字串部分,跟之前的1.Tow Num 问题几乎一样;
3.于是可以开始编码了........
一般测试可以通过,但是,当输入字符串特别长的时候会超时,提交失败...看来的重新想解决的方法了
C#代码:
1 public class Solution { 2 public int LengthOfLongestSubstring(string s) { 3 int max = 0; 4 char[] sArr = s.ToCharArray(); 5 for(int i=0;i<s.Length;i++){ 6 int tempMax=1; 7 int j =i+1; 8 Hashtable ht = new Hashtable(); 9 ht.Add(i,sArr[i]); 10 while(j<s.Length&&(!ht.ContainsValue(sArr[j]))){ 11 ht.Add(j,sArr[j]); 12 j++; 13 tempMax++; 14 } 15 16 if(max<tempMax){ 17 max = tempMax; 18 } 19 } 20 return max; 21 } 22 }
posted on 2017-03-13 23:57 codingHeart 阅读(302) 评论(0) 编辑 收藏 举报