《劍指offer》11-15題---python實現
阿新 • • 發佈:2018-12-13
‘’’ 11、題目描述 給定一個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。 ‘’’
class Solution: def Power(self, base, exponent): if base==0: return 0 if exponent==1: return 1 else: if exponent<0: result = base**(-exponent) return 1/result else: return base**exponent
‘’’ 13、題目描述 輸入一個整數陣列,實現一個函式來調整該陣列中數字的順序, 使得所有的奇數位於陣列的前半部分,所有的偶數位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。 ‘’’
class Solution: def reOrderArray(self, array): odd = [] double = [] n = len(array) for j in range(n): i = j while i>0: if array[i]<array[i-1]: array[i],array[i-1]=array[i-1],array[i] else: break for k in range(n): if array[k] % 2 == 0: double.append(array[k]) else: odd.append(array[k]) return odd+double
‘’’ 14、題目描述 輸入一個連結串列,輸出該連結串列中倒數第k個結點。 ‘’’
class Solution: def FindKthToTail(self, head, k): result = [] while head: result.append(head) head = head.next if k>len(result) or k==0: return [] else: return result[-k]
‘’’ 15、題目描述 輸入一個連結串列,反轉連結串列後,輸出新連結串列的表頭。 ‘’’
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
class Solution:
# 返回ListNode
def ReverseList(self, pHead):
lis = []
pRes = ListNode(-1)
pRes.next = pHead
if not pHead:
lis = []
while pHead:
lis.append(pHead.val)
pHead = pHead.next
newList = lis[::-1]
temp = pRes.next
for i in range(len(newList)):
pRes.next.val = newList[i]
pRes = pRes.next
return temp``