Apr 10

2018-04-12  本文已影响12人  程序猪小羊

1. LeetCode题号3

题目内容:给定一个字符串,寻找没有字符重复的最长子字符串。

1. 初始方法:
class Solution {
    public int lengthOfLongestSubstring(String s) {
        int len = s.length();
        // Set<Character> aSet = New HashSet<>();
        int maxLen = 0;
        
        // String a = new String("");
        // String b = new String("");
        
//         How to check every character in a String?
//         and do some comparisons, merge, or reorder? 
        for(int i = 0 ; i< len; i++){
            for (int j = i + 1; j <= len; j++){ 
                // j <= len for i = **len-1**, s.charAt(**len-1**), 
                // if the longest substring only contains one char
                //     the length (j - i) should be 1; 
                // therefore, j should be able to reach len
                if(inOrNot(s, i, j)){
                    maxLen = Math.max(maxLen, j-i);
                }
            }

            // Character temp = s.charAt(i)
            // if(!aSet.contains(temp)){
            //     aSet.add(temp);
            // }else{}
        }
        return maxLen;
    }
            
      public boolean inOrNot(String s, int start, int end) {
          Set<Character> set = new HashSet<>();
          for (int k = start; k < end; k++){
            Character ch = s.charAt(k);
            if (set.contains(ch)){
                return false;
            } else {
                set.add(ch);
            }
        }
        return true; 
    }
}

上面方法“Time Limit Exceeded”。

2. 优化:

遇到相同的字符,起点➕1,终点➕1. (窗口整体向后滑动一格。)

LeetCode题号5

题目内容:给定一个字符串,寻找最长的回文字子符串。

LeetCode题号14

题目内容:给定一个数组,数组中储存的元素为字符串,寻找这些字符串最长公共前缀。

本期会公布题号13的答案,接下去会慢慢更新,请大家多多支持。

上一篇 下一篇

猜你喜欢

热点阅读