Skip to content

Commit 77732c9

Browse files
committed
leetcode 1-3 26
1 parent 1827600 commit 77732c9

File tree

4 files changed

+111
-0
lines changed

4 files changed

+111
-0
lines changed

new_issue/ZConvert.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
def convert(s, numRows):
2+
"""
3+
:type s: str
4+
:type numRows: int
5+
:rtype: str
6+
"""
7+
n = len(s)
8+
if numRows == 1:
9+
return s
10+
11+
row_num = min(n, numRows)
12+
rows = [""] * row_num
13+
going_down = False
14+
current_row = 0
15+
for i in range(n):
16+
rows[current_row] += s[i]
17+
if current_row == 0 or current_row == row_num - 1:
18+
going_down = not going_down
19+
current_row += 1 if going_down else -1
20+
21+
return "".join(rows)
22+
23+
if __name__ == "__main__":
24+
s= "PAYPALISHIRING"
25+
numRows = 3
26+
print convert(s,numRows)
27+

new_issue/findMedianSortedArrays.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
2+
def findMedianSortedArrays(num1,num2):
3+
len1 = len(num1)
4+
len2 = len(num2)
5+
sum_len = len1+len2
6+
all_len = sorted(num1 + num2)
7+
if (sum_len)%2 == 0:
8+
mid = ((sum_len)/2-1,(sum_len/2))
9+
return (float(all_len[mid[0]]) + float(all_len[mid[1]]))/2
10+
else:
11+
mid = int(sum_len/2)
12+
return float(all_len[mid])
13+
14+
if __name__ == "__main__":
15+
nums1 = [-1,0,2,3,109]
16+
nums2 = [2,73,984]
17+
print findMedianSortedArrays(nums1,nums2)

new_issue/longestPalindrome.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# coding:utf-8
2+
def longestPalindrome(s):
3+
n = len(s)
4+
if n < 2:
5+
return s
6+
max_length = 1
7+
ret = s[0]
8+
9+
# 设定动态规划的状态标识数组
10+
dp = [[False]*n for _ in range(n)]
11+
# 字符串长度为0时一定为True
12+
for i in range(n):
13+
dp[i][i] = True
14+
# 从2开始,因为i必须小于j
15+
for a in range(2,n+1):
16+
for i in range(n):
17+
j = a + i - 1
18+
19+
if j >= n:
20+
break
21+
if s[i] != s[j]:
22+
dp[i][j] = False
23+
else:
24+
# 处理字符串长度为1和2的情况
25+
if j - i < 3:
26+
dp[i][j] = True
27+
else:
28+
dp[i][j] = dp[i+1][j-1]
29+
30+
if dp[i][j] and j-i+1 > max_length:
31+
ret = s[i:j+1]
32+
max_length = j-i+1
33+
return ret
34+
35+
36+
37+
if __name__ == "__main__":
38+
#s = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
39+
s = "ac"
40+
print longestPalindrome(s)

new_issue/reverse.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
def reverse(x):
2+
"""
3+
:type x: int
4+
:rtype: int
5+
"""
6+
if x == 0:
7+
return 0
8+
9+
isNav = x < 0
10+
a = str(x)
11+
b = a[1:][::-1] if isNav else a[::-1]
12+
ret = int(b)
13+
top_limit = 2 >> 30
14+
if isNav:
15+
if ret > top_limit:
16+
return 0
17+
else:
18+
return -ret
19+
if ret > top_limit - 1:
20+
return 0
21+
else:
22+
return ret
23+
24+
25+
if __name__ == "__main__":
26+
x = 13843135
27+
print reverse(x)

0 commit comments

Comments
 (0)