leetcode練習 686 python實現

2021-08-10 23:02:40 字數 885 閱讀 6378

題目要求:給定兩個string字串a和b,判斷是否a通過重複,b能變成a中的乙個子集,如果能,返回重複的次數,如果不能,返回-1。

我的思路是:

1. 當b not in a時,就讓a+=a(注意這裡用a的淺拷貝,只要加上a最初的值就行)count+=1

2. 如果a的長度已經大於b的三倍,還沒找到b,說明b是無法成為a中的子集了,返回-1

**如下:

import copy

class

solution

(object):

defrepeatedstringmatch

(self, a, b):

""" :type a: str

:type b: str

:rtype: int

"""count = 1

cp = copy.copy(a)

while b not

in a:

a += cp

count += 1

if len(a) >= 3*len(b):

return -1

return count

a ="abababaaba"

b= "aabaaba"

s = solution()

print(s.repeatedstringmatch(a,b))

結果:

最後submit成功:

py 列表練習

area a北京 q上海 f香港 s澳門 r天津 print area print sorted area print area print sorted area,reverse true print area area.reverse print area area.reverse print ...

py之檔案練習

生成100個mac位址並寫入檔案中,mac位址前6位 16進製制 為01 af 3b 01 af 3b xx xx xx xx01 af 3b xx xx01 af 3b xx xx xx01 af 3b xx xx xx import random import string print stri...

py練習 計蒜客

這是乙個非常簡單的題目,意在考察你程式設計的基礎能力。千萬別想難了哦。輸入為一行,包括了用空格分隔的三個整數a b c 資料範圍均在 40 40之間 輸出為一行,為 a b c 的計算結果。樣例1輸入 22 1 3 輸出 26 def main a,b,c raw input split a int...