leetcode bytedance 字串的排列

2021-10-01 23:49:54 字數 3008 閱讀 2173

滿腦子都是暴力法:結果就超時了

一開始這麼想的,就生成所有的由s1的組合,然後依次去s2中尋找是否有匹配的。

class

solution

:def

checkinclusion

(self, s1:

str, s2:

str)

->

bool

: all_str = self.get_all_str(s1)

for i in all_str:

try:

s2.index(i)

return

true

except

:pass

return

false

defget_all_str

(self,s)

: all_res =

deffun

(s, res="")

:iflen(s)==0

:else

: temp = s[:]

for i in

range

(len

(s))

: fun(temp[

0:i]

+ temp[i +1:

], res + s[i]

) fun(s)

return

list

(set

(all_res)

)

超時,另外發現求字串全部的排列可以使用交換位置法

def

get_all_res

(str_,num =0)

:if num ==

len(str_):""

.join(str_)

)for i in

range

(num,

len(str_)):

temp = swap(str_,

0, i)

get_all_res(str_,num+1)

defswap

(arr,i,j)

: temp = arr[i]

arr[i]

= arr[j]

arr[j]

= temp

return arr

get_all_res(

["a"

,"b"

,"c"])

print

(all_res)

最終的答案滑動視窗法

體會體會思想

class

solution

:def

checkinclusion

(self, s1:

str, s2:

str)

->

bool

: arr_s1 =[0

]*26 arr_s2 =[0

]*26for i in

range

(len

(s1)):

arr_s1[

ord(s1[i])-

ord(

"a")]+=

1 arr_s2[

ord(s2[i])-

ord(

"a")]+=

1if self.is_contail(arr_s1,arr_s2)

:return

true

for i in

range

(len

(s2)

-len

(s1)):

arr_s2[

ord(s2[i+

len(s1)])

-ord

("a")]

+=1arr_s2[

ord(s2[i])-

ord(

"a")]-=

1if self.is_contail(arr_s1, arr_s2)

:return

true

return

false

defis_contail

(self,arr_s1,arr_s2)

:for i,j in

zip(arr_s1,arr_s2)

:if i!=j:

return

false

return

true

if __name__ ==

'__main__'

: solution = solution(

) res = solution.checkinclusion(

"ab"

,"eidbaoo"

)print

(res)

Json字串轉jsonobject的排序問題

static string json 前面的那個字串直接用 jsonobject jsonobject jsonobject.parseobject json 轉換會返回 和之前的順序不一致 原因jsonobject內部是用hashmap來儲存的,所以輸出是按key的排序來的,如果要讓jsonobj...

特殊字串 1 1 2 排序

我之所以給這個字串稱奇葩,是因為它真的很奇葩,遇到這個問題是,商品管理的商品屬性不是,打比方乙個手機,有紅色,黑色,白色,尺寸,記憶體都不一樣,現在是給它們都標上號 顏色紅色1 黑色2白色3 尺寸10寸1 20寸2 30寸3 記憶體16g1 32g2 64g3 現在手機能出現的情況,這就是個組合紅色...

(52)ElasticSearch之字串排序問題

1 準備資料 put lib user address age interests birthday put lib user 1 put lib user 2 put lib user 3 put lib user 4 put lib user 5 2 操作演示 1 按照年齡降序排序 get li...