File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 66#### 2. [ Add Two Numbers] [ 3 ] : [ Solution] [ 4 ]
77#### 3. [ Longest Substring Without Repeating Characters] [ 5 ] : [ Solution] [ 6 ]
88#### 4. [ Median of Two Sorted Arrays] [ 7 ] : [ Solution] [ 8 ]
9+ #### 5. [ Longest Palindromic Substring] [ 9 ] : [ Solution] [ 10 ]
10+ (这道题对 Python 有毒, 只要时间复杂度大于等于 O(n2) 绝对 TLE, 其它语言 O(n3) 也能过...)
11+ ##### tips: Python 用 Manacher’s Algorithm 比较稳, 其它算法基本 TLE. 本例里用将每个字符当作回文串中心对匹配方式,还是可能 TLE.
912
1013
1114[ 1 ] : https://leetcode.com/problems/two-sum/
1518[ 5 ] : https://leetcode.com/problems/longest-substring-without-repeating-characters/
1619[ 6 ] : https://github.com/bluedazzle/leetcode_python/blob/master/src/lswrc.py
1720[ 7 ] : https://leetcode.com/problems/median-of-two-sorted-arrays
18- [ 8 ] : https://github.com/bluedazzle/leetcode_python/blob/master/src/motsa.py
21+ [ 8 ] : https://github.com/bluedazzle/leetcode_python/blob/master/src/motsa.py
22+ [ 9 ] : https://leetcode.com/problems/longest-palindromic-substring/
23+ [ 10 ] : https://github.com/bluedazzle/leetcode_python/blob/master/src/longest_palindromic_substring.py
Original file line number Diff line number Diff line change 1+ # coding: utf-8
2+
3+ # author: RaPoSpectre
4+ # time: 2016-10-31
5+
6+
7+ # 将每个字符串当作回文串的中心进行验证
8+
9+ class Solution (object ):
10+ def find_from_center (self , s , ms , cs ):
11+ jts = ''
12+ ots = ''
13+ j = True
14+ o = True
15+ for i in xrange (0 , ms + 1 ):
16+ if s [cs - i ] == s [cs + i ] and j :
17+ jts = s [cs - i : cs + i + 1 ]
18+ else :
19+ j = False
20+ if ms + cs + 1 == len (s ) and i == ms :
21+ break
22+ if s [cs - i ] == s [cs + i + 1 ] and o :
23+ ots = s [cs - i : cs + i + 2 ]
24+ else :
25+ o = False
26+ if len (ots ) > len (jts ):
27+ return ots
28+ return jts
29+
30+ def longestPalindrome (self , s ):
31+ """
32+ :type s: str
33+ :rtype: str
34+ """
35+ rs = ''
36+ for i in xrange (0 , len (s )):
37+ ts = i
38+ te = len (s ) - i - 1
39+ if ts < te :
40+ tmp = self .find_from_center (s , ts , i )
41+ else :
42+ tmp = self .find_from_center (s , te , i )
43+ if len (tmp ) > len (rs ):
44+ rs = tmp
45+ return rs
Original file line number Diff line number Diff line change 1+ # coding: utf-8
2+
3+ # author: RaPoSpectre
4+ # time: 2016-10-31
5+
6+
7+ def sunday (s , model ):
8+ match = False
9+ ms = 0
10+ me = len (model )
11+
12+ if s == model :
13+ print '匹配成功,位置: s[{0}]->s[{1}]' .format (0 , len (model ))
14+ return True
15+
16+ while 1 :
17+ p = s [ms : me ]
18+ if model == p :
19+ match = True
20+ print '匹配成功,位置: s[{0}]->s[{1}]' .format (ms , me )
21+ break
22+ if me >= len (s ):
23+ break
24+ sign = s [me ]
25+ if sign in model :
26+ posi = model .rfind (sign )
27+ offset = len (model ) - posi
28+ ms += offset
29+ me += offset
30+ else :
31+ ms += len (model )
32+ me += len (model )
33+ return match
34+
35+
36+ # print sunday('abxdcsxxefre', 'xx')
You can’t perform that action at this time.
0 commit comments