滿腦子都是暴力法:結果就超時了
一開始這麼想的,就生成所有的由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...