Python題目學起來
(自己的想法,不喜勿噴,歡迎大佬指教,共同進步)
(聲明:本教程僅供本人學習使用,如有人使用該技術觸犯法律與本人無關)
寫一個函數實現兩個1萬位的正整數相加(自己定義輸入和輸出)
def result_sum(a, b):
str_a = str(a)
str_b = str(b)
alist = []
for i in range(1, 100):
result = int(str_a[-(10 * i): -(10 * (i - 1))]) + int(str_b[-(10 * i): -(10 * (i - 1))])
alist.append(str(result))
for j in range(len(alist)):
if len(alist[j]) > 10:
alist[j + 1] = str(int(alist[j + 1]) + int(alist[j][:-10]))
alist[j] = alist[-10:]
return ''.join(alist[::-1])
三角形
1
1,1
1,2,1
1,3,3,1
1,4,6,4,1
.....
# !/usr/bin/python
# -*- coding:utf-8 -*-
def yhsj(nums, alist):
if nums < 2:
return alist[:nums]
else:
for i in range(2, nums):
# 行開頭
son_list = [1, ]
# 找到上一行
for j in range(len(alist[i - 1]) - 1):
# 添加到這一行
son_list.append(alist[i - 1][j] + alist[i - 1][j + 1])
# 行收尾
son_list.append(1)
alist.append(son_list)
return alist
if __name__ == "__main__":
alist = [[1], [1, 1]]
for i in yhsj(2, alist):
print(i)
最長迴文字符串
類型一:
輸入:abccba
輸出:bccb
類型二:
輸入:adbcbdc
輸出:dbcbd
# !/usr/bin/python
# -*- coding:utf-8 -*-
long_str = ""
def longStr(s: str) -> str:
"""
:param s: 輸入的字符串
:return: 返回的最大回文字符串
"""
global long_str
n = len(s)
def changeStr(i, j):
global long_str
while i > 0 and j < n and s[i] == s[j]:
i -= 1
j += 1
if len(long_str) < j - i - 1:
long_str = s[i + 1: j]
for i in range(n):
# 字符串爲 xxsxx 型
changeStr(i, i)
# 字符串爲 xxssxx 型
changeStr(i, i + 1)
return long_str