Giả sử chúng ta có một tập hợp các chuỗi trong một mảng. Chúng ta phải tìm Tiền tố chung dài nhất trong số chuỗi trong mảng. Ở đây chúng ta sẽ giả định rằng tất cả các chuỗi đều là chuỗi chữ thường. Và nếu không có tiền tố chung, hãy trả về “”.
Vì vậy, nếu mảng của một chuỗi giống như ["trường học", "lịch trình", "Scotland"], thì Tiền tố chung dài nhất là "sc" vì nó có trong tất cả các chuỗi này.
Để giải quyết điều này, chúng ta sẽ lấy chuỗi đầu tiên làm curr, bây giờ lấy từng chuỗi từ mảng và đọc chúng theo từng ký tự, đồng thời kiểm tra từng ký tự giữa curr và chuỗi đã lấy. Nếu chúng giống nhau thì đi cho ký tự tiếp theo, nếu không thì hãy ngắt vòng lặp và cập nhật cuộn dây dưới dạng chuỗi con đã khớp.
Hãy để chúng tôi xem cách triển khai để hiểu rõ hơn
Ví dụ (Python)
class Solution(object): def longestCommonPrefix(self, strs): """ :type strs: List[str] :rtype: str """ if len(strs) == 0: return "" current = strs[0] for i in range(1,len(strs)): temp = "" if len(current) == 0: break for j in range(len(strs[i])): if j<len(current) and current[j] == strs[i][j]: temp+=current[j] else: break current = temp return current input_list = ["school","schedule","scotland"] ob1 = Solution() print(ob1.longestCommonPrefix(input_list))
Đầu vào
["school","schedule","scotland"]
Đầu ra
"sc"