劍指offer 字串的排列

2021-10-24 22:13:33 字數 2243 閱讀 2355

1、python中元組和列表的區別

a= 是乙個列表

b=() 是乙個元組

區別:列表可以修改而元組不可以修改

相同點:都是乙個容器

形如:tuple1=(1,2,3,4,5,6,7,8,9)

list1=list(tuple1)

print(list1)

輸出:[1, 2, 3, 4, 5, 6, 7, 8, 9]

2、python中的itertools.permutations,返回可迭代物件的所有數學全排列方式。

形如:for item in permutations([『a』, 『b』, 『c』]):

… print item

(『a』, 『b』, 『c』)

(『a』, 『c』, 『b』)

(『b』, 『a』, 『c』)

(『b』, 『c』, 『a』)

(『c』, 『a』, 『b』)

(『c』, 『b』, 『a』)

3、python中join()方法,將字串、元組、列表中的元素以指定的字元(分隔符)連線生成乙個新的字串

形如:seq1 = [『hello』,『good』,『boy』,『doiido』]

print 』 '.join(seq1)

hello good boy doiido

print 『:』.join(seq1)

hello:good?doiido

4、python中map() 會根據提供的函式對指定序列做對映。

第乙個引數 function 以引數序列中的每乙個元素呼叫 function 函式,返回包含每次 function 函式返回值的新列表。

map(function, iterable, …)

形如:def square(x) : # 計算平方數

return x ** 2

map(square, [1,2,3,4,5]) # 計算列表各個元素的平方

[1, 4, 9, 16, 25]

map(lambda x: x ** 2, [1, 2, 3, 4, 5]) # 使用 lambda 匿名函式

[1, 4, 9, 16, 25]

#提供了兩個列表,對相同位置的列表資料進行相加

map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])

[3, 7, 11, 15, 19]

5、python中set() 函式建立乙個無序不重複元素集,可進行關係測試,刪除重複資料,還可以計算交集、差集、並集等。

形如:x = set(『world』)

y = set(『goole』)

#建立乙個無序不重複元素集,重複的元素被刪除了

print(x)

print(y)

#交集print(x & y)

#並集print(x | y)

#差集print(x - y)

輸出:6、python中sorted() 函式對所有可迭代的物件進行排序操作。

sort 與 sorted 區別:

sort 是應用在 list 上的方法,sorted 可以對所有可迭代的物件進行排序操作。

list 的 sort 方法返回的是對已經存在的列表進行操作,無返回值,而內建函式 sorted 方法返回的是乙個新的 list,而不是在原來的基礎上進行的操作。

形如:a = [5,7,6,3,4,1,2]

b = sorted(a) # 保留原列表

print(a)

[5, 7, 6, 3, 4, 1, 2]

print(b)

[1, 2, 3, 4, 5, 6, 7]

7、劍指offer:字串的排列。 輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則按字典序列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。

import itertools

class

solution

:def

permutation

(self, ss)

:# write code here

ifnot ss:

return

arr=

sorted

(set

(list

(map(''

.join, itertools.permutations(ss)))

))return arr

劍指Offer 字串排列

題目描述 輸入乙個字串,列印出該字串中字元的所有排列。解析 step 1 求所有可能出現第乙個位置的字元。把第乙個字元與後面的每個字元交換。step 2 固定第乙個字元,將後面的字元利用遞迴進行全排列。include include using namespace std void stringpe...

劍指offer 字串的排列

題目描述 輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c 所能排列出來的所有字串abc,acb,bac,bca,cab和cba。結果請按字母順序輸出。解題思路 深度搜尋,在每層搜尋裡設定乙個a陣列對映所有字元,每個字元在這層迴圈中只能使用一次,避免重...

劍指offer 字串的排列

輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。結果請按字母順序輸出。輸入描述 輸入乙個字串,長度不超過9 可能有字元重複 字元只包括大小寫字母。分析 經典問題。記住吧。class ...