Giả sử chúng ta có một danh sách các chuỗi chữ cái viết thường được gọi là các từ. Chúng ta phải tìm độ dài của danh sách con liền kề dài nhất mà chữ cái đầu tiên của mỗi từ có cùng chữ cái đầu tiên.
Vì vậy, nếu đầu vào giống như các từ =["cô ấy", "bán", "vỏ sò", "trên", "sự", "biển", "bờ"], thì đầu ra sẽ là 3, danh sách con liền kề dài nhất là ["cô ấy", "bán", "vỏ sò"]. Chữ cái đầu tiên của các từ foreach là 's'.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
-
cnt:=1
-
maxcnt:=0
-
trước_char:=chuỗi trống
-
đối với mỗi từ trong từ, hãy thực hiện
-
nếu pres_char trống, thì
-
trước_char:=chữ cái đầu tiên của từ
-
-
ngược lại, khi pres_char giống với chữ cái đầu tiên của từ, thì
-
cnt:=cnt + 1
-
-
nếu không,
-
trước_char:=chữ cái đầu tiên của từ
-
cnt:=1
-
-
maxcnt:=tối đa của maxcnt và cnt
-
-
trả về maxcnt
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau đây để hiểu rõ hơn
def solve(words): cnt = 1 maxcnt = 0 prev_char = "" for word in words: if prev_char == "": prev_char = word[0] elif prev_char == word[0]: cnt += 1 else: prev_char = word[0] cnt = 1 maxcnt = max(maxcnt, cnt) return maxcnt words = ["she", "sells", "seashells", "on", "the", "sea", "shore"] print(solve(words))
Đầu vào
["she", "sells", "seashells", "on", "the", "sea", "shore"]
Đầu ra
3