1.在一個二維數組中(每個一維數組的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。
思路:判斷數組中是否有該整數,因此返回值為false或true。定義查詢函數Find(),使用循環判斷輸入的整數是否在array中,設置flag位,若含有則返回true,否則返回false。
/* 判斷整數是否在二維數組里 */
class Solution:
# array 二維列表
def Find(self, target, array):
# write code here
N = len(array)
flag = 'false'
for i in range(N):
if target in array[i]:
flag = 'true';
break
return flag
while True:
try:
s = Solution()
#字符串轉化為list
L = list(eval(raw_input()))
array = L[1]
target = L[0]
print(s.Find(target, array))
except:
break
2.請實現一個函數,將一個字符串中的每個空格替換成“%20”。例如,當字符串為We Are Happy.則經過替換之后的字符串為We%20Are%20Happy。
class Solution:
# s 源字符串
def replaceSpace(self, s):
return s.replace(" ", "%20")
/* 方法2 */
class Solution:
def replaceSpace(self, s):
s = list(s)
n = len(s)
for i in range(n):
if s[i] == " ":
s[i] = "%20"
return "".join(s)
3.輸入一個鏈表,按鏈表值從尾到頭的順序返回一個ArrayList。
思路:將鏈表值從尾到頭順序返回,可使用列表切片進行實現。
/*******************/
-*- coding:utf-8 -*-
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
class Solution:
# 返回從尾部到頭部的列表值序列,例如[1,2,3]
def printListFromTailToHead(self, listNode):
L = list()
while lsitNode:
L.append(listNode.val)
listNode = listNode.next
return L[::-1] //逆序輸出
python列表切片點擊下面鏈接
https://blog.csdn.net/sinat_28576553/article/details/84404653
5.輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重復的數字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,5,3,8,6},則重建二叉樹并返回。
解題思路:前序遍歷的順序為根左右,中序遍歷的順序為左根右。二叉樹在構建時采用了遞歸的思想,因此在還原重建時亦可以用到遞歸的方法。
/* python遞歸實現 */
/* 定義二叉樹結點 */
class TreeNode:
def __init__(self, x):
self.val = x //包含結點的值
self.left = None //結點左孩子
self.right = None //結點右孩子
class Solution
def reConstructBiTree(self, pre, tin):
if not pre or not tin:
return None
root = TreeNode(pre[0]) //首先從前序遍歷中找到根結點
i = tin.index(root.val) //根據已知的根結點的值,找到其在中序遍歷中的index值
/* 根據根左右,左根右的思路,切片得到根結點的左半邊和右半邊,遞歸*/
root.left = self.reConstructBiTree(pre[1:i+1], tin[:i])
root.right = self.reConstructBiTree(pre[i+1:], tin[i+1:])
return root
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
