Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

คำนำหน้าร่วมที่ยาวที่สุดใน Python

สมมติว่าเรามีชุดของสตริงในอาร์เรย์ เราต้องหาคำนำหน้าร่วมที่ยาวที่สุด (Longest Common Prefix) ระหว่างสตริงในอาร์เรย์ ที่นี่เราจะสมมติว่าสตริงทั้งหมดเป็นตัวพิมพ์เล็ก และถ้าไม่มีคำนำหน้าร่วม ให้คืนค่า ""

เช่นถ้าอาร์เรย์ของสตริงเป็น ["school", "schedule", "scotland"] คำนำหน้าร่วมที่ยาวที่สุดคือ "sc" เนื่องจากอยู่ในสตริงทั้งหมด

ในการแก้ปัญหานี้ เราจะเอาสตริงตัวแรกเป็น curr ตอนนี้เอาแต่ละสตริงจากอาร์เรย์และอ่านทีละตัวอักษร และตรวจสอบตัวอักษรระหว่าง curr และสตริงที่เอามาทีละตัว ถ้าเหมือนกันไปตัวถัดไป มิฉะนั้นหยุดลูป และอัปเดต curr เป็นสับสตริงที่ตรงกัน

ตัวอย่าง (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))

อินพุต

["school","schedule","scotland"]

เอาต์พุต

"sc"