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

คำนำหน้าทั่วไปที่ยาวที่สุดใน Python


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

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

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

ให้เราดูการใช้งานเพื่อความเข้าใจที่ดีขึ้น

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